home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #15 / Monster Media Number 15 (Monster Media)(July 1996).ISO / games_du / dn3dgr01.zip / GAME.CON next >
Text File  |  1996-04-02  |  71KB  |  2,508 lines

  1.  
  2. /*
  3. --------------------------------------------------------------------------------
  4. Duke Nukem 3D Script Code.
  5. Todd Replogle & Dan Gibbons (gory bits)
  6.  
  7. The gory stuff is what I came up with after playing about with this for a
  8. bit - thanks to Iggy and the blokes at Apogee for making a great game!
  9.  
  10. mail me at:
  11.  
  12. 100344.3212@compuserve.com
  13. mendou@digibank.demon.co.uk
  14.  
  15. Or join my UK Ultimate Doom ladder in the Cserve action games forum!
  16. (go ACTION) and mail Dan Gibbons (100344,3212) in Section 11 (Multiplayer
  17. Gaming)
  18.  
  19. Have fun!
  20.  
  21. -DanG
  22. --------------------------------------------------------------------------------
  23. */
  24.  
  25. include defs.con
  26. include user.con
  27.  
  28. state rats
  29.     ifrnd 128 spawn RAT
  30.     ifrnd 128 spawn RAT
  31.     ifrnd 128 spawn RAT
  32.     ifrnd 128 spawn RAT
  33.     ifrnd 128 spawn RAT
  34.     ifrnd 128 spawn RAT
  35.     ifrnd 128 spawn RAT
  36.     ifrnd 128 spawn RAT
  37. ends
  38.  
  39. move RESPAWN_ACTOR_FLAG
  40.  
  41. action RUBCANDENT 1 1 1 1 1
  42. action RUBCAN
  43.  
  44. actor RUBBERCAN WEAK
  45.     ifaction RUBCANDENT { ifactioncount 16 { strength 0 action RUBCAN break } }
  46.     else ifhitweapon
  47.     {
  48.         ifwasweapon THROWFLAME { state rats ifrnd 48 spawn BURNING debris SCRAP3 4 /* spawn EXPLOSION2 */ killit }
  49.         else ifwasweapon RADIUSEXPLOSION { state rats ifrnd 48 spawn BURNING debris SCRAP3 12 /* spawn EXPLOSION2 */ killit }
  50.         else action RUBCANDENT
  51.     }
  52. enda
  53.  
  54. state headhitstate
  55.  
  56. // Unrem the following line to have Duke get hit upside his head
  57.  
  58. // wackplayer
  59.  
  60. ends
  61.  
  62.  
  63. action EXPBARRELFRAME         0   2   1   1   15
  64. actor EXPLODINGBARREL 26
  65.     fall
  66.     ifaction EXPBARRELFRAME
  67.     {
  68.         ifactioncount 2
  69.         {
  70.             hitradius 1024 WEAKEST WEAK MEDIUMSTRENGTH TOUGH
  71.             spawn EXPLOSION2
  72.             debris SCRAP2 2
  73.             sound PIPEBOMB_EXPLODE
  74.             killit
  75.         }
  76.         break
  77.     }
  78.     ifsquished
  79.     {
  80.         debris SCRAP1 5
  81.         killit
  82.         break
  83.     }
  84.     ifhitweapon
  85.         action EXPBARRELFRAME
  86. enda
  87.  
  88. action BURNING_FLAME    0   12   1   1   2
  89. move BURNING_VELS 
  90.  
  91. state burningstate
  92.  
  93.     ifgapzl 16 break
  94.     ifpdistg 10240 break
  95. //    ifpdistl 8192 soundonce FLESH_BURNING
  96.  
  97.     ifcount 128
  98.     {
  99.         ifspawnedby TIRE
  100.         {
  101.             ifactioncount 512
  102.             {
  103.                 sizeto 16 16
  104.                 killit
  105.             }
  106.             ifrnd 16 sizeto 64 48
  107.         }
  108.         else
  109.         {
  110.             sizeto 8 8 sizeto 8 8
  111.             ifactioncount 192 killit
  112.         }
  113.     }
  114.     else
  115.     {
  116.         ifmove 0 move BURNING_VELS
  117.  
  118.         ifspawnedby BOX
  119.             { sizeto 32 32 ifcount 32 { spawn SMALLSMOKE killit } }
  120.         else ifspawnedby TREE1 sizeto 96 96
  121.         else ifspawnedby TREE2 sizeto 96 96
  122.         else ifspawnedby APLAYER { sizeto 40 40 sizeto 40 40 }
  123.         else sizeto 52 52
  124.         ifp palive ifpdistl 844 ifrnd 32 ifcansee { soundonce DUKE_LONGTERM_PAIN addphealth -1 palfrom 24 16 }
  125.     }
  126.  
  127. ends
  128.  
  129. actor BURNING WEAK BURNING_FLAME
  130.     state burningstate
  131. enda
  132.  
  133. actor BURNING2 WEAK BURNING_FLAME
  134.     state burningstate
  135. enda
  136.  
  137. action TOILETWATERFRAMES 0 4 1 1 1
  138. actor TOILETWATER 0 TOILETWATERFRAMES
  139.     ifpdistl 8192
  140.     {
  141.         ifpdistl 6144 soundonce WATER_GURGLE
  142.         ifspawnedby TOILET
  143.             sizeto 34 34
  144.         else
  145.         {
  146.             ifspawnedby WATERFOUNTAINBROKE
  147.                 sizeto 6 15
  148.             else sizeto 24 32
  149.         }
  150.         ifp pdead break
  151.         else ifpdistl RETRIEVEDISTANCE ifp pfacing ifactioncount 32 ifphealthl MAXPLAYERHEALTH
  152.             ifhitspace ifcansee
  153.         {
  154.             addphealth 1
  155.             globalsound DUKE_DRINKING
  156.             resetactioncount
  157.         }
  158.     }
  159. enda
  160.  
  161. action WOODENHORSEFRAME  0   1   4
  162. action WOODENFALLFRAME  122  1   5
  163.  
  164. actor HORSEONSIDE WEAKEST cactor WOODENHORSE action WOODENFALLFRAME enda
  165. actor WOODENHORSE WEAK WOODENHORSEFRAME
  166.     fall
  167.     ifhitweapon
  168.     {
  169.         ifdead
  170.         {
  171.             debris SCRAP1 4
  172.             debris SCRAP2 3
  173.             killit
  174.         }
  175.         else action WOODENFALLFRAME
  176.     }
  177. enda
  178.  
  179. state steamcode
  180.     ifpdistl 5144 soundonce STEAM_HISSING
  181.  
  182.     ifcount 26        // Turn it on
  183.     {
  184.         resetcount
  185.         ifpdistl 844
  186.         {
  187.             addphealth -1
  188.             palfrom 16 16
  189.         }
  190.     }
  191.     else
  192.     {
  193.         ifspawnedby STEAM break ifspawnedby CEILINGSTEAM break
  194.         sizeto 24 24
  195.     }
  196. ends
  197.  
  198. actor STEAM
  199.     state steamcode
  200. enda
  201.  
  202. actor CEILINGSTEAM
  203.     state steamcode
  204. enda
  205.  
  206. actor WATERBUBBLEMAKER 0 0 random_angle
  207.     ifpdistl 2048 ifrnd 24 spawn WATERBUBBLE
  208. enda
  209.  
  210. action BUBBLE
  211. action CRACKEDBUBBLE    1
  212. move BUBMOVE           -10 -36
  213. move BUBMOVEFAST           -10 -52
  214.  
  215. actor WATERBUBBLE 0 BUBBLE BUBMOVE getv geth random_angle
  216.  
  217.     ifaction CRACKEDBUBBLE
  218.     {
  219.         ifinwater ifrnd 192 killit
  220.         ifactioncount 7 killit
  221.     }
  222.     else
  223.     {
  224.         ifcount 4
  225.         {
  226.             ifrnd 192 move BUBMOVE getv geth random_angle
  227.             else move BUBMOVEFAST getv geth random_angle
  228.             resetcount
  229.         }
  230.  
  231.         ifonwater
  232.         {
  233.             iffloordistl 8 action CRACKEDBUBBLE
  234.         }
  235.         else ifactioncount 40 action CRACKEDBUBBLE
  236.     }
  237. enda
  238.  
  239.  
  240. move SMOKEVEL 8 -16
  241. move ENGINE_SMOKE 64 -64
  242. move SMOKESHOOTOUT -192
  243. action SMOKEFRAMES 0 4 1 1 10
  244. actor SMALLSMOKE 0 SMOKEFRAMES
  245.     ifmove 0
  246.     {
  247.         ifspawnedby RECON
  248.             move SMOKESHOOTOUT geth
  249.         else ifspawnedby SECTOREFFECTOR
  250.             move ENGINE_SMOKE geth getv
  251.         else move SMOKEVEL geth getv face_player
  252.  
  253.     }
  254.     ifactioncount 4 killit
  255. enda
  256.  
  257. action BARREL_DENTING  2 2 1 1 6
  258. action BARREL_DENTED   1
  259. action BARREL_DENTED2  2
  260.  
  261. move SPAWNED_BLOOD
  262.  
  263. actor NUKEBARRELDENTED WEAK
  264.     cactor NUKEBARREL
  265.     action BARREL_DENTED
  266. enda
  267.  
  268. actor NUKEBARRELLEAKED WEAK
  269.     cactor NUKEBARREL
  270.     action BARREL_DENTED2
  271. enda
  272.  
  273. actor NUKEBARREL MEDIUMSTRENGTH
  274.     ifsquished
  275.     {
  276.         debris SCRAP1 32
  277.         spawn BLOODPOOL
  278.         spawn OOZ
  279.         killit
  280.     }
  281.     fall
  282.     ifaction BARREL_DENTING
  283.     {
  284.         ifactioncount 2
  285.         {
  286.             debris SCRAP1 10
  287.             ifrnd 2 spawn BLOODPOOL
  288.             killit
  289.         }
  290.     }
  291.     else ifhitweapon
  292.     {
  293.         ifdead
  294.         {
  295.             sound VENT_BUST
  296.  
  297.             ifrnd 128
  298.                 spawn BLOODPOOL
  299.             action BARREL_DENTING
  300.         }
  301.         else
  302.         {
  303.             ifaction 0
  304.                 action BARREL_DENTED
  305.             else ifaction BARREL_DENTED
  306.             {
  307.                 action BARREL_DENTED2
  308.                 spawn BLOODPOOL
  309.             }
  310.             else ifaction BARREL_DENTED2
  311.                 action BARREL_DENTING
  312.         }
  313.     }
  314. enda
  315.  
  316. actor FIREBARREL
  317.     fall
  318.     ifcount 32
  319.     {
  320.         resetcount
  321.         ifpdistl 1480 ifp phigher
  322.         {
  323.             addphealth -1
  324.             palfrom 16 16
  325.             ifrnd 96 sound DUKE_LONGTERM_PAIN
  326.         }
  327.     }
  328.     ifhitweapon
  329.     {
  330.         sound VENT_BUST
  331.         debris SCRAP1 10
  332.         ifrnd 128 spawn BURNING
  333.         else spawn BURNING2
  334.         killit
  335.     }
  336. enda
  337.  
  338. action SHRINKERFRAMES 0 4 1 1 10
  339. actor SHRINKEREXPLOSION 0 SHRINKERFRAMES
  340.     ifactioncount 4 killit
  341. enda
  342.  
  343. action EXPLOSION_FRAMES 0 20 1 1  4
  344. actor EXPLOSION2 1 EXPLOSION_FRAMES
  345. //    ifspawnedby FIREEXT spritepal 1
  346.     ifactioncount 20 killit
  347. enda
  348.  
  349. actor EXPLOSION2BOT 1 EXPLOSION_FRAMES
  350.     ifactioncount 20 killit
  351. enda
  352.  
  353. action FFLAME_FR 0 16 1 1 1
  354. action FFLAME 0 1 1 1 1
  355.  
  356. actor FLOORFLAME 0 FFLAME_FR
  357.         ifaction FFLAME_FR
  358.         {
  359.                 shadeto -127
  360.                 ifpdistl 1024 hitradius 1024 WEAKEST WEAKEST WEAKEST WEAKEST
  361.                 ifactioncount 16
  362.                     action FFLAME
  363.         }
  364.         ifaction FFLAME ifrnd 4
  365.         {
  366.              action FFLAME_FR
  367.              sound CAT_FIRE
  368.              resetactioncount
  369.         }
  370.  
  371. enda
  372.  
  373.  
  374.  
  375. action ASATNSPIN   0 5 1 1 4
  376. action ASATSHOOTING -10 3 5 1 40
  377. action ASATWAIT 0 1 5 1 1
  378. move TURRVEL
  379.  
  380. actor ROTATEGUN ROTTURRETSTRENGTH ASATWAIT TURRVEL face_player
  381.  
  382.     ifaction ASATNSPIN
  383.         { ifactioncount 32 { action ASATWAIT move TURRVEL face_player } }
  384.     else ifaction ASATSHOOTING
  385.     {
  386.         ifactioncount 12 { ifrnd 32 action ASATWAIT }
  387.         ifcount 32 resetcount
  388.         else ifcount 16 { ifcount 17 { } else { sound PRED_ATTACK shoot FIRELASER } }
  389.         else ifcount 4 { ifcount 5 { } else { sound PRED_ATTACK shoot FIRELASER } }
  390.     }
  391.     else ifaction ASATWAIT
  392.         { ifactioncount 64 ifrnd 32 ifp palive ifcansee { action ASATSHOOTING move TURRVEL face_player } }
  393.     ifhitweapon { ifdead { addkills 1 sound LASERTRIP_EXPLODE debris SCRAP1 15 spawn EXPLOSION2 killit }
  394.         else { action ASATNSPIN debris SCRAP1 4 } move 0 }
  395.  
  396. enda
  397.  
  398. action RIP_F 0 8 1 1 1
  399. actor FORCERIPPLE 0 RIP_F
  400.     ifactioncount 8 killit
  401.     ifrnd 16 sound SHORT_CIRCUIT
  402. enda
  403.  
  404. action TRANSFOWARD 0  6  1  1  2
  405. action TRANSBACK   5  6  1 -1  2
  406. actor TRANSPORTERSTAR 0 TRANSFOWARD
  407.     ifaction TRANSFOWARD
  408.     {
  409.         ifactioncount 6
  410.             action TRANSBACK
  411.     }
  412.     else
  413.         ifactioncount 6 killit
  414. enda
  415.  
  416. action BEAMFOWARD  0  4  1  1  9
  417. actor TRANSPORTERBEAM 0 BEAMFOWARD
  418.     sizeto 32 64 sizeto 32 64 sizeto 32 64
  419.     ifactioncount 4 killit
  420. enda
  421.  
  422. state getcode
  423.     globalsound DUKE_GET
  424.     palfrom 16 0 32
  425.     ifrespawn
  426.     {
  427.         move RESPAWN_ACTOR_FLAG
  428.         cstat 32768
  429.     }
  430.     else killit
  431. ends
  432.  
  433. state randgetweapsnds
  434.     ifrnd 32 globalsound DUKE_GETWEAPON1
  435.     else ifrnd 32 globalsound DUKE_GETWEAPON2
  436.     else ifrnd 32 globalsound DUKE_GETWEAPON3
  437.     else ifrnd 32 globalsound DUKE_GETWEAPON4
  438.     else globalsound DUKE_GET
  439. ends
  440.  
  441. state getweaponcode
  442.  
  443.     state randgetweapsnds
  444.  
  445.     palfrom 32 0 32
  446.     ifrespawn
  447.     {
  448.         move RESPAWN_ACTOR_FLAG
  449.         cstat 32768
  450.     }
  451.     else killit
  452. ends
  453.  
  454.  
  455. state respawnit
  456.     ifcount RESPAWNACTORTIME { spawn TRANSPORTERSTAR move 0 cstat 0 sound TELEPORTER }
  457. ends
  458.  
  459. state quikget
  460.     globalsound DUKE_GET
  461.     palfrom 16 0 32 killit
  462. ends
  463.  
  464. state quikweaponget
  465.     state randgetweapsnds
  466.     palfrom 32 0 32 killit
  467. ends
  468.  
  469. actor STEROIDS
  470.     fall
  471.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  472.     else ifp pshrunk { } else ifcount 6 ifpdistl RETRIEVEDISTANCE
  473.     ifpinventory GET_STEROIDS STEROID_AMOUNT ifcanseetarget
  474.     {
  475.         addinventory GET_STEROIDS STEROID_AMOUNT quote 37 state getcode
  476.     }
  477. enda
  478.  
  479. actor HEATSENSOR
  480.     fall
  481.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  482.     else ifp pshrunk { } else ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  483.     {
  484.         addinventory GET_HEATS HEAT_AMOUNT quote 101 state getcode
  485.     }
  486. enda
  487.  
  488. actor BOOTS
  489.     fall
  490.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  491.     else ifp pshrunk { } else ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_BOOTS BOOT_AMOUNT
  492.         ifcanseetarget
  493.     {
  494.         addinventory GET_BOOTS BOOT_AMOUNT quote 6 state getcode
  495.     }
  496. enda
  497.  
  498. actor SHIELD
  499.     fall
  500.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  501.     else ifp pshrunk { } else ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_SHIELD SHIELD_AMOUNT
  502.         ifcanseetarget
  503.     {
  504.         ifspawnedby PIGCOP
  505.         {
  506.             ifrnd 128 addinventory GET_SHIELD PIG_SHIELD_AMOUNT1
  507.             else addinventory GET_SHIELD PIG_SHIELD_AMOUNT2
  508.             quote 104
  509.             sound KICK_HIT palfrom 24 0 32 killit
  510.         }
  511.         else addinventory GET_SHIELD SHIELD_AMOUNT quote 38
  512.         ifspawnedby SHIELD state getcode
  513.         else state quikget
  514.     }
  515. enda
  516.  
  517. actor BODYSUIT
  518.     fall
  519.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  520.     else ifp pshrunk { } else ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_BSUIT BODYSUIT_AMOUNT ifcanseetarget
  521.     {
  522.         addinventory GET_BSUIT BODYSUIT_AMOUNT quote 42 state getcode
  523.     }
  524. enda
  525.  
  526. actor AIRTANK
  527.     fall
  528.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  529.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifpinventory GET_SCUBA SCUBA_AMOUNT ifcanseetarget
  530.     {
  531.         addinventory GET_SCUBA SCUBA_AMOUNT quote 39 state getcode
  532.     }
  533. enda
  534.  
  535. action HOLODUKE_FRAMES 0 4 1 1 8
  536. actor HOLODUKE 0 HOLODUKE_FRAMES
  537.     fall
  538.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  539.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifpinventory GET_HOLODUKE HOLODUKE_AMOUNT ifcanseetarget
  540.     {
  541.         addinventory GET_HOLODUKE HOLODUKE_AMOUNT quote 51 state getcode
  542.     }
  543. enda
  544.  
  545. actor JETPACK
  546.     fall
  547.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  548.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifpinventory GET_JETPACK JETPACK_AMOUNT ifcanseetarget
  549.     {
  550.         addinventory GET_JETPACK JETPACK_AMOUNT quote 41 state getcode
  551.     }
  552. enda
  553.  
  554. actor ACCESSCARD
  555.     fall
  556.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  557.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  558.     {
  559.         ifpinventory GET_ACCESS 0 break
  560.         addinventory GET_ACCESS 1
  561.         quote 43
  562.         state getcode
  563.     }
  564. enda
  565.  
  566. // test boss_recod
  567.  
  568.  
  569. actor AMMO
  570.     fall
  571.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  572.     else ifp pshrunk { } else ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  573.     {
  574.         addammo PISTOL_WEAPON PISTOLAMMOAMOUNT quote 65
  575.         ifspawnedby AMMO state getcode
  576.         else state quikget
  577.     }
  578. enda
  579.  
  580. actor SHOTGUNAMMO
  581.     fall
  582.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  583.     else ifp pshrunk { } else ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  584.     {
  585.         addammo SHOTGUN_WEAPON SHOTGUNAMMOAMOUNT quote 69
  586.         ifspawnedby SHOTGUNAMMO state getcode
  587.         else state quikget
  588.     }
  589. enda
  590.  
  591. actor AMMOLOTS
  592.     fall
  593.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  594.     else ifp pshrunk { } else ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  595.     {
  596.         addammo PISTOL_WEAPON 48 quote 65
  597.         ifspawnedby AMMOLOTS state getcode
  598.         else state quikget
  599.     }
  600. enda
  601.  
  602. actor FUELCAN
  603.     fall
  604.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  605.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  606.     {
  607.         addammo FLAMETHROWER_WEAPON FUELAMMOAMOUNT quote 66
  608.         ifspawnedby FUELCAN state getcode
  609.         else state quikget
  610.     }
  611. enda
  612.  
  613. actor CRYSTALAMMO
  614.     fall
  615.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  616.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  617.     {
  618.         addammo SHRINKER_WEAPON CRYSTALAMMOAMOUNT quote 78
  619.         ifspawnedby CRYSTALAMMO state getcode
  620.         else state quikget
  621.     }
  622. enda
  623.  
  624. actor BATTERYAMMO
  625.     fall
  626.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  627.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  628.     {
  629.         addammo CHAINGUN_WEAPON CHAINGUNAMMOAMOUNT quote 63
  630.         ifspawnedby BATTERYAMMO state getcode
  631.         else state quikget
  632.     }
  633. enda
  634.  
  635. actor RPGAMMO
  636.     fall
  637.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  638.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  639.     {
  640.         addammo RPG_WEAPON RPGAMMOBOX quote 64
  641.         ifspawnedby RPGAMMO state getcode
  642.         else state quikget
  643.     }
  644. enda
  645.  
  646. actor HBOMBAMMO
  647.     fall
  648.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  649.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  650.     {
  651.         addweapon HANDBOMB_WEAPON 0
  652.         addammo HANDBOMB_WEAPON HANDBOMBBOX
  653.  
  654.         quote 55
  655.         ifspawnedby HBOMBAMMO state getweaponcode
  656.         else state quikweaponget
  657.     }
  658. enda
  659.  
  660. actor RPGSPRITE
  661.     fall
  662.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  663.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  664.     {
  665.         addweapon RPG_WEAPON RPGAMMOBOX quote 56
  666.         ifspawnedby RPGSPRITE state getweaponcode
  667.         else state quikweaponget
  668.     }
  669. enda
  670.  
  671. actor SHOTGUNSPRITE
  672.     fall
  673.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  674.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  675.     {
  676.         ifspawnedby PIGCOP
  677.         {
  678.             addweapon SHOTGUN_WEAPON 0
  679.             ifrnd 64 addammo SHOTGUN_WEAPON 4
  680.             else ifrnd 64 addammo SHOTGUN_WEAPON 3
  681.             else ifrnd 64 addammo SHOTGUN_WEAPON 2
  682.             else addammo SHOTGUN_WEAPON 1
  683.         }
  684.         else addweapon SHOTGUN_WEAPON SHOTGUNAMMOAMOUNT quote 57
  685.         ifspawnedby SHOTGUNSPRITE state getweaponcode
  686.         else state quikweaponget
  687.     }
  688. enda
  689.  
  690.  
  691.  
  692. actor SIXPAK
  693.     fall
  694.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  695.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifphealthl MAXPLAYERHEALTH ifcanseetarget
  696.     {
  697.         addphealth 30 quote 62
  698.         ifspawnedby SIXPAK state getcode
  699.         else state quikget
  700.     }
  701. enda
  702.  
  703. actor COLA
  704.     fall
  705.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  706.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifphealthl MAXPLAYERHEALTH // ifcanseetarget
  707.     {
  708.         addphealth 10 quote 61
  709.         ifspawnedby COLA state getcode
  710.         else state quikget
  711.     }
  712. enda
  713.  
  714. actor ATOMICHEALTH
  715.     fall
  716.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  717.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  718.         ifphealthl MAXPLAYERATOMICHEALTH
  719.     {
  720.         addphealth 50 quote 19
  721.         ifspawnedby ATOMICHEALTH state getcode
  722.         else state quikget
  723.     }
  724. enda
  725.  
  726.  
  727.  
  728.  
  729. actor FIRSTAID
  730.     fall
  731.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  732.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6
  733.         ifpinventory GET_FIRSTAID FIRSTAID_AMOUNT
  734.     ifcanseetarget
  735.     {
  736.         addinventory GET_FIRSTAID FIRSTAID_AMOUNT quote 3 state getcode
  737.     }
  738. enda
  739.  
  740.  
  741. actor FIRSTGUNSPRITE
  742.     fall
  743.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  744.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  745.     {
  746.         addweapon PISTOL_WEAPON 48
  747.         ifspawnedby FIRSTGUNSPRITE state getweaponcode
  748.         else state quikweaponget
  749.     }
  750. enda
  751.  
  752. actor TRIPBOMBSPRITE
  753.     fall
  754.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  755.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  756.     {
  757.         addweapon TRIPBOMB_WEAPON 1
  758.         quote 58
  759.         state getweaponcode
  760.     }
  761. enda
  762.  
  763. actor CHAINGUNSPRITE
  764.     fall
  765.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  766.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  767.     {
  768.         addweapon CHAINGUN_WEAPON 500 quote 54
  769.         ifspawnedby CHAINGUNSPRITE state getweaponcode
  770.         else state quikweaponget
  771.     }
  772. enda
  773.  
  774.  
  775.  
  776. actor SHRINKERSPRITE
  777.     fall
  778.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  779.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  780.     {
  781.         addweapon SHRINKER_WEAPON 10 quote 60
  782.         ifspawnedby SHRINKERSPRITE state getweaponcode
  783.         else state quikweaponget
  784.     }
  785. enda
  786.  
  787. actor FLAMETHROWERSPRITE
  788.     fall
  789.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  790.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  791.     {
  792.         addweapon FLAMETHROWER_WEAPON 48 quote 59
  793.         ifspawnedby FLAMETHROWERSPRITE state getweaponcode
  794.         else state quikweaponget
  795.     }
  796. enda
  797.  
  798. state firestate
  799.  
  800.     ifgapzl 16 break
  801.     ifpdistg 10240 break
  802.     ifinwater killit
  803.  
  804.     ifp palive ifpdistl 844 ifrnd 32 ifcansee { soundonce DUKE_LONGTERM_PAIN addphealth -1 palfrom 32 32 }
  805.  
  806.     ifactor FIRE ifspawnedby FIRE break
  807.     else ifactor FIRE2 ifspawnedby FIRE2 break
  808.  
  809.     iffloordistl 128
  810.     {
  811.         ifcount 32 sizeto 8 8
  812.         ifcount 64 killit
  813.     }
  814.     else killit
  815.  
  816. ends
  817.  
  818. action FIRE_FRAMES     -1 14 1 1 1
  819. move FIREVELS
  820. actor FIRE WEAK FIRE_FRAMES FIREVELS state firestate enda
  821. actor FIRE2 WEAK FIRE_FRAMES FIREVELS state firestate enda
  822.  
  823. actor FECES
  824.     ifcount 24
  825.     {
  826.         ifpdistl RETRIEVEDISTANCE
  827.         {
  828.             spawn BLOODPOOL   // Will be brown
  829.             killit
  830.         }
  831.     }
  832.     else sizeto 32 32
  833. enda
  834.  
  835. state drop_ammo ifrnd SPAWNAMMOODDS spawn AMMO ends
  836. state drop_battery ifrnd SPAWNAMMOODDS spawn BATTERYAMMO ends
  837. state drop_fuel ifrnd SPAWNAMMOODDS spawn FUELCAN ends
  838. state drop_sgshells ifrnd SPAWNAMMOODDS spawn SHOTGUNAMMO ends
  839. state drop_shotgun ifrnd SPAWNAMMOODDS spawn SHOTGUNSPRITE ends
  840.  
  841. // Shotgun 1-2 shotgun blasts.
  842.  
  843. state standard_jibs
  844.     guts JIBS2 2
  845.     guts JIBS3 3
  846.     guts JIBS4 6
  847.     guts JIBS5 4
  848.     guts JIBS6 6
  849.     ifrnd 16 guts JIBS1 1                // spine
  850.  
  851.     ifrnd 96
  852.     {
  853.         ifrnd 32 globalsound JIBBED_ACTOR1
  854.         else ifrnd 42 globalsound JIBBED_ACTOR2
  855.         else ifrnd 52 globalsound JIBBED_ACTOR3
  856.         else ifrnd 62 globalsound JIBBED_ACTOR5
  857.         else ifrnd 72 globalsound JIBBED_ACTOR6
  858.         else ifrnd 82  globalsound JIBBED_ACTOR7
  859.         else ifrnd 92 globalsound JIBBED_ACTOR4
  860.     }
  861. //    else sound SQUISHED
  862. ends
  863.  
  864. state troop_body_jibs
  865.     ifrnd 64 guts HEADJIB1 1
  866.     ifrnd 64 guts LEGJIB1 2
  867.     ifrnd 64 guts ARMJIB1 1
  868.     ifrnd 48 spawn BLOODPOOL
  869. ends
  870.  
  871. state liz_body_jibs
  872. ifrnd 64 guts LIZMANHEAD1 1
  873.     ifrnd 64 guts LIZMANLEG1 2
  874.     ifrnd 64 guts LIZMANARM1 1
  875.     ifrnd 48 spawn BLOODPOOL
  876. ends
  877.  
  878. state delete_enemy killit ends
  879.  
  880.  
  881. action BLOODFRAMES 0 4 1 1 15
  882. actor BLOOD 0 BLOODFRAMES
  883.     sizeto 72 72 sizeto 72 72 sizeto 72 72
  884.     ifpdistg 3144 killit
  885.     ifactioncount 4 killit
  886. enda
  887.  
  888. action EGGOPEN1 1 1 1 1 4
  889. action EGGOPEN2 2 1 1 1 4
  890. action EGGOPEN3 2 1 1 1 4
  891.  
  892. actor EGG TOUGH
  893.     ifaction EGGOPEN1 ifactioncount 4 action EGGOPEN2
  894.     ifaction EGGOPEN2 ifactioncount 4 { spawn GREENSLIME action EGGOPEN3 }
  895.     ifhitweapon { ifdead { addkills 1 state standard_jibs state delete_enemy } else ifaction 0 action EGGOPEN1 }
  896. enda
  897.  
  898. actor KNEE KNEE_WEAPON_STRENGTH enda
  899. actor SPIT SPIT_WEAPON_STRENGTH enda
  900. actor CHAINGUN CHAINGUN_WEAPON_STRENGTH enda
  901. actor SHOTGUN SHOTGUN_WEAPON_STRENGTH enda
  902. actor FIRELASER FIRELASER_WEAPON_STRENGTH enda
  903. actor HEAVYHBOMB HANDBOMB_WEAPON_STRENGTH enda
  904. actor BOUNCEMINE BOUNCEMINE_WEAPON_STRENGTH enda
  905. actor MORTER MORTER_WEAPON_STRENGTH enda
  906. actor SHRINKSPARK SHRINKER_WEAPON_STRENGTH enda
  907. actor RPG RPG_WEAPON_STRENGTH enda
  908. actor THROWFLAME FLAMETHROWER_WEAPON_STRENGTH enda
  909. actor COOLEXPLOSION1 COOL_EXPLOSION_STRENGTH enda
  910. actor TRIPBOMB TRIPBOMB_STRENGTH enda
  911.  
  912. action WEAP2FRAMES 0  4  1  1  6
  913. actor SHOTSPARK1 PISTOL_WEAPON_STRENGTH WEAP2FRAMES
  914.     ifdead killit
  915.     ifactioncount 4 killit
  916.     else
  917.     {
  918.         ifactioncount 3 { ifinwater spawn WATERBUBBLE }
  919.         else ifcount 2 { } else ifonwater spawn WATERSPLASH2
  920.     }
  921. enda
  922.  
  923. state standard_pjibs
  924.     guts JIBS1 1
  925.     guts JIBS3 2
  926.     guts JIBS4 1
  927.     guts JIBS5 1
  928.     guts JIBS6 2
  929.     guts DUKETORSO 1
  930.     guts DUKELEG 2
  931.     guts DUKEGUN 1
  932.     ifrnd 16 money 1
  933. ends
  934.  
  935. move DUKENOTMOVING
  936. state handle_dead_dukes
  937.     fall
  938.     ifmove 0     // 1st time initializiation...
  939.     {
  940.         ifrnd 128 cstat 4
  941.         else cstat 0
  942.         move DUKENOTMOVING
  943.     }
  944.  
  945.     ifsquished
  946.     {
  947.         sound SQUISHED
  948.         spawn OOZ
  949.         killit
  950.     }
  951.     else ifcount 1024 ifpdistg 4096 killit
  952.     else
  953.     {
  954.         strength 0
  955.         ifhitweapon ifwasweapon RADIUSEXPLOSION
  956.         {
  957.             state standard_jibs
  958.             killit
  959.         }
  960.     }
  961. ends
  962.  
  963. action PLYINGFRAMES 0 1 0 1 1
  964. actor DUKELYINGDEAD 0 PLYINGFRAMES
  965.     state handle_dead_dukes
  966. enda
  967.  
  968. action PSTAND       0   1   5   1    1
  969. action PEXPLODE     106   5   1   1   10
  970. action PEXPLODEAD   113   1   1
  971.  
  972. action PJPHOUVER    15   1   5   1
  973. action PWALK        20   4   5   1   16
  974. action PRUN         20   4   5   1   10
  975. action PWALKBACK    45   4   5  -1   16
  976. action PRUNBACK     45   4   5  -1   10
  977. action PJUMPING     50   4   5   1   30
  978. action PFALLING     65   1   5
  979. action PDUCKING     86   1   5
  980. action PCRAWLING    86   3   5   1   20
  981. action PAKICKING    40   2   5   1   25
  982. action PFLINTCHING  106  1   1   1   10
  983. action PTHROWNBACK  106  5   1   1   18
  984. action PLYINGDEAD   113  1   1
  985.  
  986. action PSWIMMINGGO   375   1   5   1   10
  987. action PSWIMMING     375   4   5   1   13
  988. action PSWIMMINGWAIT 395   1   5   1   13
  989. action PTREDWATER    395   2   5   1   17
  990.  
  991. // move PHITHARD   0 -32
  992. move PSTOPED
  993. move PSHRINKING // used as a var only
  994.  
  995. state check_dead_thrown_back
  996.     ifdead
  997.     {
  998.         strength 0
  999.         action PTHROWNBACK
  1000. //        move PHITHARD geth getv
  1001.     }
  1002. ends
  1003.  
  1004. state check_pstandard
  1005.     ifp pwalking action PWALK
  1006.     else ifp pkicking action PAKICKING
  1007.     else ifp pwalkingback action PWALKBACK
  1008.     else ifp prunning action PRUN
  1009.     else ifp prunningback action PRUNBACK
  1010.     else ifp pjumping
  1011.         action PJUMPING
  1012.     else ifp pducking action PDUCKING
  1013. ends
  1014.  
  1015. state random_wall_jibs
  1016.     ifrnd 96 shoot BLOODSPLAT1
  1017.     ifrnd 96 shoot BLOODSPLAT2
  1018.     ifrnd 96 shoot BLOODSPLAT3
  1019.     ifrnd 96 shoot BLOODSPLAT4
  1020.     ifrnd 96 shoot BLOODSPLAT1
  1021. ends
  1022.  
  1023. actor APLAYER 100 PSTAND
  1024.  
  1025.     ifaction 0 action PSTAND
  1026.     ifdead
  1027.     {
  1028.         ifsquished palfrom 32 63 63 63
  1029.         else fall
  1030.  
  1031.         ifactioncount 7 { move 0 } else ifactioncount 6
  1032.         {
  1033.             ifrnd 84 globalsound DUKE_KILLED1
  1034.             else ifrnd 108 globalsound DUKE_KILLED2
  1035.             else globalsound DUKE_KILLED3
  1036.         }
  1037.  
  1038.         ifaction PLYINGDEAD
  1039.         {
  1040.             ifactioncount 3 move PSTOPED
  1041.             quote 13
  1042.             ifhitspace
  1043.             {
  1044.                 action PSTAND
  1045.                 spawn DUKELYINGDEAD
  1046.                 resetplayer
  1047.             }
  1048.             break
  1049.         }
  1050.         else ifaction PTHROWNBACK
  1051.         {
  1052.             ifactioncount 5
  1053.             {
  1054.                 spawn BLOODPOOL
  1055.                 action PLYINGDEAD
  1056.             }
  1057.             else ifactioncount 1 move 0
  1058.             break
  1059.         }
  1060.         else ifaction PEXPLODEAD
  1061.         {
  1062.             quote 13
  1063.             ifhitspace
  1064.             {
  1065.                 action PSTAND
  1066.                 resetplayer
  1067.             }
  1068.             break
  1069.         }
  1070.         else ifaction PEXPLODE
  1071.         {
  1072.             ifactioncount 5
  1073.             {
  1074.                 action PEXPLODEAD
  1075.                 spawn BLOODPOOL
  1076.             }
  1077.             break
  1078.         }
  1079.  
  1080.         else ifp pshrunk
  1081.         {
  1082.             state standard_pjibs
  1083.             spawn BLOODPOOL
  1084.  
  1085.             sound SQUISHED
  1086.             cstat 32768                 // Hide the sprite
  1087.  
  1088.             action PLYINGDEAD
  1089.         }
  1090.  
  1091.         else
  1092.         {
  1093.             ifinwater
  1094.             {
  1095.                 action PLYINGDEAD
  1096.                 spawn WATERBUBBLE
  1097.                 spawn WATERBUBBLE
  1098.             }
  1099.             else
  1100.             {
  1101.                 action PEXPLODE
  1102.                 state standard_pjibs
  1103.                 cstat 32768
  1104.                 sound SQUISHED
  1105.             }
  1106.         }
  1107.         break
  1108.     }
  1109.     ifsquished
  1110.     {
  1111.         strength -1
  1112.         sound SQUISHED
  1113.         spawn OOZ
  1114.         break
  1115.     }
  1116.  
  1117.     ifp ponsteroids
  1118.     {
  1119.         ifp pstanding { }
  1120.         else spawn FRAMEEFFECT1
  1121.     }
  1122.  
  1123.     ifmove PSHRINKING
  1124.     {
  1125.         ifcount 32
  1126.         {
  1127.             ifcount SHRUNKDONECOUNT move 0
  1128.             else ifcount SHRUNKCOUNT
  1129.             {
  1130.                 sizeto 42 36
  1131.                 ifgapzl 24
  1132.                 {
  1133.                     strength 0
  1134.                     sound SQUISHED
  1135.                     palfrom 48 64
  1136.                     break
  1137.                 }
  1138.             }
  1139.             else ifp ponsteroids count SHRUNKCOUNT
  1140.         }
  1141.         else
  1142.         {
  1143.             ifp ponsteroids count SHRUNKCOUNT
  1144.             else { sizeto 8 9 spawn FRAMEEFFECT1 }
  1145.         }
  1146.     }
  1147.  
  1148.     else ifhitweapon
  1149.     {
  1150.         ifdead cstat 0 else sound DUKE_LONGTERM_PAIN
  1151.  
  1152.         ifstrength TOUGH
  1153.         {
  1154.             state headhitstate
  1155.             ifp pstanding action PFLINTCHING
  1156.         }
  1157.  
  1158.         ifwasweapon RPG
  1159.         {
  1160.             ifrnd 32 spawn BLOOD
  1161.             ifdead state standard_pjibs
  1162.             palfrom 48 52
  1163.             break
  1164.         }
  1165.         ifwasweapon RADIUSEXPLOSION
  1166.         {
  1167.             ifrnd 32 spawn BLOOD
  1168.             ifdead state standard_pjibs
  1169.             palfrom 48 52
  1170.             break
  1171.         }
  1172.         ifwasweapon FIREEXT
  1173.         {
  1174.             ifrnd 32 spawn BLOOD
  1175.             ifdead state standard_pjibs
  1176.             palfrom 48 52
  1177.             break
  1178.         }
  1179.  
  1180.  
  1181.         ifwasweapon SHRINKSPARK
  1182.         {
  1183.             palfrom 48 0 48
  1184.             move PSHRINKING // used as a var only.
  1185.             sound ACTOR_SHRINKING
  1186.             break
  1187.         }
  1188.  
  1189.         ifwasweapon SHOTSPARK1 palfrom 24 48
  1190.         else ifwasweapon COOLEXPLOSION1 palfrom 48 48 0 48
  1191.         else ifwasweapon KNEE palfrom 16 32
  1192.         else ifwasweapon FIRELASER palfrom 32 32
  1193.         else ifwasweapon THROWFLAME { quote 108 palfrom 32 64 ifrnd 16 spawn BURNING }
  1194.  
  1195.         state check_dead_thrown_back
  1196.         state random_wall_jibs
  1197.  
  1198.         break
  1199.     }
  1200.  
  1201.     ifaction PFLINTCHING
  1202.     {
  1203.         ifactioncount 2 action PSTAND
  1204.         break
  1205.     }
  1206.  
  1207.     ifinwater
  1208.     {
  1209.         ifaction PTREDWATER
  1210.         {
  1211.             ifp pwalking prunning action PSWIMMINGGO
  1212.         }
  1213.         else ifp pstanding pwalkingback prunningback action PTREDWATER
  1214.         else
  1215.         {
  1216.             ifaction PSWIMMING
  1217.             {
  1218.                 ifrnd 4 spawn WATERBUBBLE
  1219.                 ifactioncount 4
  1220.                     action PSWIMMINGWAIT
  1221.             }
  1222.             else ifaction PSWIMMINGWAIT
  1223.             {
  1224.                 ifactioncount 2
  1225.                     action PSWIMMINGGO
  1226.             }
  1227.             else ifaction PSWIMMINGGO
  1228.             {
  1229.                 ifactioncount 2
  1230.                     action PSWIMMING
  1231.             }
  1232.             else action PTREDWATER
  1233.         }
  1234.  
  1235.         ifrnd 4 spawn WATERBUBBLE // For effect
  1236.  
  1237.         break
  1238.     }
  1239.     else ifp pjetpack
  1240.     {
  1241.         ifaction PJPHOUVER
  1242.         {
  1243.             ifactioncount 4
  1244.                 resetactioncount
  1245.         }
  1246.         else action PJPHOUVER
  1247.         break
  1248.     }
  1249.     else
  1250.     {
  1251.         ifaction PTREDWATER action PSTAND
  1252.         ifaction PSWIMMING action PSTAND
  1253.         ifaction PSWIMMINGWAIT action PSTAND
  1254.         ifaction PSWIMMINGGO action PSTAND
  1255.         ifaction PJPHOUVER action PFALLING
  1256.     }
  1257.  
  1258.     ifaction PFALLING
  1259.     {
  1260.         ifp ponground
  1261.             action PSTAND
  1262.         else
  1263.         {
  1264.             ifp pfalling break
  1265.             else state check_pstandard
  1266.         }
  1267.     }
  1268.  
  1269.     ifaction PDUCKING
  1270.     {
  1271.         ifgapzl 48
  1272.         {
  1273.             ifp pwalking pwalkingback prunning prunningback action PCRAWLING
  1274.         }
  1275.         else ifp pducking
  1276.         {
  1277.             ifp pwalking pwalkingback prunning prunningback action PCRAWLING
  1278.         }
  1279.         else
  1280.         {
  1281.             ifp pstanding action PSTAND
  1282.             else state check_pstandard
  1283.         }
  1284.     }
  1285.  
  1286.     else ifaction PCRAWLING
  1287.     {
  1288.         ifgapzl 48
  1289.         {
  1290.             ifp pstanding action PCRAWLING
  1291.         }
  1292.         else ifp pducking
  1293.         {
  1294.             ifp pstanding action PDUCKING
  1295.         }
  1296.         else
  1297.         {
  1298.             ifp pstanding action PSTAND
  1299.             else state check_pstandard
  1300.         }
  1301.     }
  1302.     else ifgapzl 48 action PDUCKING
  1303.  
  1304.     else ifaction PJUMPING
  1305.     {
  1306.         ifp ponground action PSTAND
  1307.         else ifactioncount 4 ifp pfalling action PFALLING
  1308.     }
  1309.  
  1310.     ifp pfalling action PFALLING
  1311.     else ifaction PSTAND state check_pstandard
  1312.     else ifaction PAKICKING
  1313.     {
  1314.         ifactioncount 2 action PSTAND
  1315.         break
  1316.     }
  1317.     else ifaction PWALK
  1318.     {
  1319.         ifp pfalling action PFALLING
  1320.         else ifp pstanding action PSTAND
  1321.         else ifp prunning action PRUN
  1322.         else ifp pwalkingback action PWALKBACK
  1323.         else ifp prunningback action PRUNBACK
  1324.         else ifp pjumping
  1325.             action PJUMPING
  1326.         else ifp pducking action PDUCKING
  1327.     }
  1328.  
  1329.     else ifaction PRUN
  1330.     {
  1331.         ifp pstanding action PSTAND
  1332.         else ifp pwalking action PWALK
  1333.         else ifp pwalkingback action PWALKBACK
  1334.         else ifp prunningback action PRUNBACK
  1335.         else ifp pjumping
  1336.             action PJUMPING
  1337.         else ifp pducking action PDUCKING
  1338.     }
  1339.  
  1340.     else ifaction PWALKBACK
  1341.     {
  1342.         ifp pstanding action PSTAND
  1343.         else ifp pwalking action PWALK
  1344.         else ifp prunning action PRUN
  1345.         else ifp prunningback action PRUNBACK
  1346.         else ifp pjumping
  1347.             action PJUMPING
  1348.         else ifp pducking action PDUCKING
  1349.     }
  1350.  
  1351.     else ifaction PRUNBACK
  1352.     {
  1353.         ifp pstanding action PSTAND
  1354.         else ifp pwalking action PWALK
  1355.         else ifp prunning action PRUN
  1356.         else ifp pwalkingback action PWALKBACK
  1357.         else ifp pjumping
  1358.             action PJUMPING
  1359.         else ifp pducking action PDUCKING
  1360.     }
  1361. enda
  1362.  
  1363. state genericshrunkcode
  1364.     ifcount 32 { ifpdistl RETRIEVEDISTANCE pstomp }
  1365.     else { sizeto 9 8 spawn FRAMEEFFECT1 }
  1366. ends
  1367.  
  1368. actor ORGANTIC TURRETSTRENGTH
  1369.     ifcount 48 resetcount
  1370.     else { ifcount 32 sizeto 32 32 }
  1371.     else ifcount 16 { sizeto 48 18 ifpdistl 2048 { sound TURR_ATTACK addphealth -2 palfrom 32 16 } }
  1372.     ifhitweapon { ifdead { addkills 1 sound TURR_DYING guts JIBS5 10 state delete_enemy } sound TURR_PAIN break }
  1373.     ifrnd 1 soundonce TURR_ROAM
  1374. enda
  1375.  
  1376. state rf
  1377.     ifrnd 128 cstat 4
  1378.     else cstat 0
  1379. ends
  1380.  
  1381. //
  1382. //
  1383. //      TROOP/LIZTROOP CODE
  1384. //
  1385. //
  1386.  
  1387. action ATROOPSTAND       0    1    5    1    1
  1388. action ATROOPSTAYSTAND  -2    1    5    1    1
  1389. action ATROOPWALKING     0    4    5    1   12
  1390. action ATROOPWALKINGBACK 15   4    5   -1   12
  1391. action ATROOPRUNNING     0    4    5    1    8
  1392. action ATROOPSHOOT      35    1    5    1   30
  1393. action ATROOPJETPACK    40    1    5    1    1
  1394. action ATROOPJETPACKILL 40    2    5    1   50
  1395. action ATROOPFLINTCH    50    1    1    1    6
  1396. action ATROOPDYING      50    5    1    1   16
  1397. action ATROOPDEAD       54
  1398. action ATROOPPLAYDEAD   54
  1399. action ATROOPSUFFERDEAD 58    2    1   -4   24
  1400. action ATROOPSUFFERING  59    2    1    1   21
  1401. action ATROOPDUCK       64    1    5    1    3
  1402. action ATROOPDUCKSHOOT  64    2    5    1   25
  1403. action ATROOPABOUTHIDE  74    1    1    1   25
  1404. action ATROOPHIDE       79    1    1    1   25
  1405. action ATROOPREAPPEAR   74    1    1    1   25
  1406.  
  1407. move TROOPWALKVELS 72
  1408. move TROOPWALKVELSBACK -72
  1409. move TROOPJETPACKVELS 64 -84
  1410. move TROOPJETPACKILLVELS 192 -38
  1411. move TROOPRUNVELS 108
  1412. move TROOPSTOPPED
  1413. move DONTGETUP
  1414. move SHRUNKVELS 32
  1415.  
  1416. ai AITROOPSEEKENEMY  ATROOPWALKING   TROOPWALKVELS seekplayer
  1417. ai AITROOPSEEKPLAYER ATROOPWALKING   TROOPWALKVELS seekplayer
  1418. ai AITROOPFLEEING    ATROOPWALKING   TROOPWALKVELS fleeenemy
  1419. ai AITROOPFLEEINGBACK ATROOPWALKINGBACK   TROOPWALKVELSBACK face_player
  1420. ai AITROOPDODGE      ATROOPWALKING   TROOPRUNVELS  dodgebullet
  1421. ai AITROOPSHOOTING   ATROOPSHOOT     TROOPSTOPPED  face_player
  1422. ai AITROOPDUCKING    ATROOPDUCK      TROOPSTOPPED  face_player
  1423. ai AITROOPJETPACK    ATROOPJETPACK   TROOPJETPACKVELS seekplayer
  1424. ai AITROOPSHRUNK     ATROOPWALKING   SHRUNKVELS fleeenemy
  1425. ai AITROOPHIDE       ATROOPABOUTHIDE TROOPSTOPPED face_player
  1426.  
  1427. state troophidestate
  1428.     ifaction ATROOPREAPPEAR
  1429.     {
  1430.         ifactioncount 2 { sound TELEPORTER ai AITROOPSHOOTING cstat 257 }
  1431.         else { sizeto 41 40 sizeto 41 40 sizeto 41 40 sizeto 41 40 spawn FRAMEEFFECT1 }
  1432.     }
  1433.     else ifaction ATROOPWALKING
  1434.     {
  1435.         ifpdistl 2448 ifpdistg 1024
  1436.         {
  1437.             ifceilingdistl 48 break
  1438.             ifp pfacing break
  1439.  
  1440.             ifgapzl 48 { } else ifcanshoottarget { spawn TRANSPORTERSTAR action ATROOPREAPPEAR move 0 break }
  1441.         }
  1442.     }
  1443.     else ifaction ATROOPHIDE
  1444.     {
  1445.         ifactioncount 2
  1446.         {
  1447.             spawn TRANSPORTERSTAR
  1448.             sound TELEPORTER
  1449.             action ATROOPWALKING move TROOPWALKVELS face_player
  1450.             cstat 32768
  1451.         }
  1452.         else
  1453.         {
  1454.             sizeto 0 40
  1455.             sizeto 0 40
  1456.             sizeto 0 40
  1457.             sizeto 0 40
  1458.             spawn FRAMEEFFECT1
  1459.         }
  1460.     }
  1461.     else ifaction ATROOPABOUTHIDE ifactioncount 2 { action ATROOPHIDE cstat 0 }
  1462. ends
  1463.  
  1464.  
  1465. state troopgunnashoot
  1466.     ifp palive
  1467.     {
  1468.         ifpdistl 1024 ai AITROOPSHOOTING
  1469.         else ifactornotstayput
  1470.         {
  1471.             ifactioncount 12 ifrnd 16 ifcanshoottarget
  1472.             {
  1473.                 ifspritepal 21 ifpdistg 4096 ai AITROOPHIDE
  1474.                 else
  1475.                 {
  1476.                     ifpdistl 1100 ai AITROOPFLEEING
  1477.                     else
  1478.                     {
  1479.                         ifpdistl 4096 ifcansee ifcanshoottarget ai AITROOPSHOOTING
  1480.                         else { move TROOPRUNVELS seekplayer action ATROOPRUNNING }
  1481.                     }
  1482.                 }
  1483.             }
  1484.         }
  1485.         else ifcount 26 ifrnd 32 ai AITROOPSHOOTING
  1486.     }
  1487. ends
  1488.  
  1489. state troopseekstate
  1490.     state troopgunnashoot
  1491.     ifcansee
  1492.     {
  1493.         ifmove TROOPRUNVELS ifpdistl 1596 ai AITROOPDUCKING
  1494.         ifp phigher { ifceilingdistl 128 { } else ifactornotstayput ai AITROOPJETPACK break }
  1495.         else ifrnd 2 ifbulletnear { ifrnd 128 ai AITROOPDODGE else ai AITROOPDUCKING }
  1496.         ifrnd 16 ifspritepal 21 ifpdistg 1596 ai AITROOPHIDE
  1497.     }
  1498.     ifnotmoving { ifrnd 32 operate else ifcount 32 ifp palive ifcansee ifcanshoottarget ai AITROOPSHOOTING }
  1499.     ifrnd 1
  1500.     {
  1501.         ifrnd 128 soundonce PRED_ROAM
  1502.         else soundonce PRED_ROAM2
  1503.     }
  1504. ends
  1505.  
  1506. state troopduckstate
  1507.     ifaction ATROOPDUCK
  1508.         { ifactioncount 8 { ifp palive { ifrnd 128 action ATROOPDUCKSHOOT } else ifmove DONTGETUP break else ai AITROOPSEEKPLAYER } }
  1509.     else ifaction ATROOPDUCKSHOOT
  1510.     {
  1511.         ifcount 64
  1512.         {
  1513.             ifmove DONTGETUP resetcount
  1514.             else
  1515.             {
  1516.                 ifpdistl 1100
  1517.                     ai AITROOPFLEEING
  1518.                 else ai AITROOPSEEKPLAYER
  1519.             }
  1520.         }
  1521.         else ifactioncount 2 { ifcanshoottarget { sound PRED_ATTACK resetactioncount shoot FIRELASER } else ai AITROOPSEEKPLAYER }
  1522.     }
  1523. ends
  1524.  
  1525. state troopshootstate
  1526.     ifactioncount 2
  1527.     {
  1528.         ifcanshoottarget
  1529.         {
  1530.             shoot FIRELASER sound PRED_ATTACK resetactioncount
  1531.             ifrnd 128 ai AITROOPSEEKPLAYER
  1532.             ifcount 24
  1533.             {
  1534.                 ifrnd 96 ifpdistg 2048 ai AITROOPSEEKPLAYER
  1535.                 else
  1536.                 {
  1537.                     ifpdistg 1596 ai AITROOPFLEEING
  1538.                     else ai AITROOPFLEEINGBACK
  1539.                 }
  1540.             }
  1541.         }
  1542.         else ai AITROOPSEEKPLAYER
  1543.     }
  1544. ends
  1545.  
  1546. state troopfleestate
  1547.     ifactioncount 7
  1548.     {
  1549.         ifpdistg 3084 { ai AITROOPSEEKPLAYER break }
  1550.         else ifrnd 32 ifp palive ifcansee ifcanshoottarget { ifrnd 128 ai AITROOPDUCKING else ai AITROOPSHOOTING break }
  1551.     }
  1552.     ifnotmoving
  1553.     {
  1554.         ifrnd 32 operate else ifcount 32 ifp palive ifcansee ifcanshoottarget
  1555.             { ifrnd 128 ai AITROOPSHOOTING else ai AITROOPDUCKING }
  1556.     }
  1557. ends
  1558.  
  1559. state troopdying
  1560.     iffloordistl 32 { ifactioncount 5 { cstat 0 iffloordistl 8 sound THUD ifrnd 64 spawn BLOODPOOL state rf strength 0 move TROOPSTOPPED action ATROOPDEAD } break }
  1561.     else { state rf move 0 action ATROOPDYING }
  1562. ends
  1563.  
  1564. state checktroophit
  1565.     ifaction ATROOPSUFFERING { stopsound LIZARD_BEG sound PRED_DYING cstat 0 strength 0 action ATROOPSUFFERDEAD break }
  1566.     state standard_jibs
  1567.     ifdead
  1568.     {
  1569.         state drop_ammo
  1570.         state random_wall_jibs
  1571.         addkills 1
  1572.  
  1573.         ifwasweapon RPG { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  1574.         else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  1575.         else ifwasweapon THROWFLAME { spawn BURNING sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  1576.         else { ifrnd 64 iffloordistl 32 { sound LIZARD_BEG spawn BLOODPOOL strength 0 move 0 action ATROOPSUFFERING break } action ATROOPDYING break }
  1577.         sound PRED_DYING
  1578.     }
  1579.     else
  1580.     {
  1581.         state random_wall_jibs
  1582.         sound PRED_PAIN
  1583.         ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AITROOPSHRUNK }
  1584.         else ifwasweapon THROWFLAME quote 14
  1585.         iffloordistl 32 ifrnd 96 action ATROOPFLINTCH
  1586.     }
  1587. ends
  1588.  
  1589. state troopjetpackstate
  1590.     ifaction ATROOPJETPACKILL
  1591.     {
  1592.         ifcansee ifactioncount 2
  1593.         {
  1594.             resetactioncount
  1595.             sound PRED_ATTACK
  1596.             shoot FIRELASER
  1597.         }
  1598.  
  1599.         ifp phigher ai AITROOPJETPACK
  1600.         else ifinwater ai AITROOPJETPACK
  1601.         ifcount 26 iffloordistl 32 ai AITROOPSEEKPLAYER
  1602.     }
  1603.     else ifcount 48 ifcansee
  1604.         { action ATROOPJETPACKILL move TROOPJETPACKILLVELS seekplayer }
  1605. ends
  1606.  
  1607. state checksquished
  1608.     ifsquished { addkills 1 sound SQUISHED state standard_jibs spawn OOZ state delete_enemy }
  1609. ends
  1610.  
  1611. state troopsufferingstate
  1612.     ifactioncount 2
  1613.     {
  1614.         ifrnd 16 spawn WATERDRIP
  1615.         ifactioncount 14 { stopsound LIZARD_BEG cstat 0 strength 0 action ATROOPSUFFERDEAD break }
  1616.     }
  1617. ends
  1618.  
  1619. state troopshrunkstate
  1620.     ifcount SHRUNKDONECOUNT { ifdead { addkills 1 sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy } ai AITROOPSEEKENEMY }
  1621.     else ifcount SHRUNKCOUNT sizeto 48 40
  1622.     else state genericshrunkcode
  1623. ends
  1624.  
  1625. state troopcode fall
  1626.     ifinwater ifrnd 1 spawn WATERBUBBLE
  1627.     ifaction ATROOPSTAND { ifrnd 192 ai AITROOPSHOOTING else ai AITROOPSEEKPLAYER }
  1628.  
  1629.     ifinwater ifrnd 4 spawn WATERBUBBLE
  1630.     else ifaction ATROOPPLAYDEAD
  1631.     {
  1632.         ifhitweapon
  1633.         {
  1634.             ifwasweapon RADIUSEXPLOSION { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  1635.             break
  1636.         }
  1637.         else state checksquished
  1638.  
  1639.         ifcount PLAYDEADTIME { addkills -1 soundonce PRED_ROAM cstat 257 strength 1 ai AITROOPSHOOTING }
  1640.         else ifp pfacing resetcount
  1641.  
  1642.         break
  1643.     }
  1644.     else ifaction ATROOPDEAD
  1645.     {
  1646.         strength 0
  1647.         ifrespawn ifcount RESPAWNACTORTIME { spawn TRANSPORTERSTAR cstat 257 strength TROOPSTRENGTH ai AITROOPSEEKENEMY }
  1648.         ifhitweapon
  1649.         {
  1650.             ifwasweapon RADIUSEXPLOSION { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  1651.             break
  1652.         }
  1653.         else state checksquished
  1654.         break
  1655.     }
  1656.     else ifaction ATROOPSUFFERDEAD
  1657.     {
  1658.         ifactioncount 2
  1659.         {
  1660.             ifrnd 64 { resetcount action ATROOPPLAYDEAD }
  1661.             else { soundonce PRED_DYING action ATROOPDEAD }
  1662.         }
  1663.     }
  1664.     else ifaction ATROOPDYING { state troopdying break }
  1665.     else ifaction ATROOPSUFFERING
  1666.         { state troopsufferingstate ifhitweapon state checktroophit break }
  1667.     else ifaction ATROOPFLINTCH { ifactioncount 4 ai AITROOPSEEKENEMY }
  1668.     else
  1669.     {
  1670.         ifai AITROOPSEEKPLAYER state troopseekstate
  1671.         else ifai AITROOPJETPACK { state troopjetpackstate soundonce DUKE_JETPACK_IDLE }
  1672.         else ifai AITROOPSEEKENEMY state troopseekstate
  1673.         else ifai AITROOPSHOOTING state troopshootstate
  1674.         else ifai AITROOPFLEEING state troopfleestate
  1675.         else ifai AITROOPFLEEINGBACK state troopfleestate
  1676.         else ifai AITROOPDODGE state troopseekstate
  1677.         else ifai AITROOPDUCKING state troopduckstate
  1678.         else ifai AITROOPSHRUNK state troopshrunkstate
  1679.         else ifai AITROOPHIDE { state troophidestate break }
  1680.     }
  1681.  
  1682.     ifhitweapon state checktroophit else state checksquished
  1683. ends
  1684.  
  1685.  
  1686.  
  1687.  
  1688. actor LIZTROOPJETPACK TROOPSTRENGTH ai AITROOPJETPACK cactor LIZTROOP enda
  1689. actor LIZTROOPDUCKING TROOPSTRENGTH
  1690.     ai AITROOPDUCKING cactor LIZTROOP
  1691.     ifgapzl 48 move DONTGETUP
  1692. enda
  1693.  
  1694. actor LIZTROOPSHOOT TROOPSTRENGTH ATROOPSTAND ai AITROOPSHOOTING cactor LIZTROOP enda
  1695. actor LIZTROOPSTAYPUT TROOPSTRENGTH ATROOPSTAYSTAND ai AITROOPSEEKPLAYER cactor LIZTROOP enda
  1696. actor LIZTROOPRUNNING TROOPSTRENGTH ATROOPSTAND ai AITROOPSEEKPLAYER cactor LIZTROOP enda
  1697. actor LIZTROOPONTOILET TROOPSTRENGTH ifcount 24 { sound FLUSH_TOILET operate ai AITROOPSEEKPLAYER cactor LIZTROOP } enda
  1698.  
  1699. actor LIZTROOP TROOPSTRENGTH ATROOPSTAND state troopcode enda
  1700.  
  1701.  
  1702. action ALIZWALKING       0     4    5    1    15
  1703. action ALIZRUNNING       0     4    5    1    11
  1704. action ALIZTHINK         20    2    5    1    40
  1705. action ALIZSCREAM        30    1    5    1    2
  1706. action ALIZJUMP          40    4    5    1    16
  1707. action ALIZSHOOTING      70    2    5    1    20
  1708. action ALIZDYING         60    6    1    1    15
  1709. action ALIZLYINGDEAD     66    1
  1710.  
  1711. move LIZWALKVEL 72
  1712. move LIZRUNVEL 192
  1713. move LIZJUMPVEL  96 -84
  1714. move LIZSTOP
  1715.  
  1716. ai AILIZGETENEMY ALIZWALKING LIZWALKVEL seekplayer
  1717. ai AILIZDODGE ALIZRUNNING LIZRUNVEL dodgebullet
  1718. ai AILIZCHARGEENEMY ALIZRUNNING LIZRUNVEL face_player
  1719. ai AILIZFLEENEMY ALIZWALKING LIZWALKVEL fleeenemy
  1720. ai AILIZSHOOTENEMY ALIZSHOOTING LIZSTOP face_player
  1721. ai AILIZJUMPENEMY ALIZJUMP LIZJUMPVEL face_player
  1722. ai AILIZTHINK ALIZTHINK LIZSTOP face_player
  1723. ai AILIZSHRUNK ALIZWALKING SHRUNKVELS face_player
  1724. ai AILIZSPIT ALIZSCREAM LIZSTOP face_player
  1725. ai AILIZDYING ALIZDYING LIZSTOP face_player
  1726.  
  1727. state lizseekstate
  1728.  
  1729.     ifp palive ifcount 52 ifcansee ifcanshoottarget { ai AILIZSHOOTENEMY break }
  1730.  
  1731.     ifai AILIZCHARGEENEMY
  1732.     {
  1733.         ifpdistl 2048
  1734.         {
  1735.             ifrnd 128 ifcansee ifcanshoottarget ai AILIZSHOOTENEMY
  1736.             else ifgapzl 128 ifactornotstayput ai AILIZJUMPENEMY
  1737.         }
  1738.         break
  1739.     }
  1740.     ifrnd 32 ifnotmoving operate
  1741.     ifpdistg 4096 { ifrnd 32 ai AILIZCHARGEENEMY }
  1742.  
  1743.     ifrnd 1 ifbulletnear
  1744.     {
  1745.         ifgapzl 128 ai AILIZDODGE
  1746.         else ifactornotstayput { ifrnd 32 ai AILIZJUMPENEMY else ai AILIZDODGE }
  1747.     }
  1748. ends
  1749.  
  1750. state lizshrunkstate
  1751.     ifcount SHRUNKDONECOUNT { ifdead { addkills 1 sound SQUISHED state liz_body_jibs state standard_jibs state delete_enemy } ai AILIZGETENEMY }
  1752.     else ifcount SHRUNKCOUNT sizeto 48 40
  1753.     else state genericshrunkcode
  1754. ends
  1755.  
  1756. state lizfleestate
  1757.     ifnotmoving ai AILIZGETENEMY
  1758.     else ifrnd 16 ifpdistl 2048 ifp palive ifcansee ai AILIZSPIT
  1759. ends
  1760.  
  1761. state lizthinkstate
  1762.     ifrnd 8 soundonce CAPT_ROAM
  1763.     ifactioncount 3
  1764.     {
  1765.         ifrnd 32 ifp palive ifcansee ai AILIZSPIT
  1766.         else ifrnd 96 ai AILIZGETENEMY
  1767.     }
  1768.     else ifactioncount 2 ifrnd 8 spawn FECES
  1769.     ifrnd 1 ifbulletnear
  1770.     {
  1771.         ifgapzl 128 ai AILIZDODGE
  1772.         else { ifrnd 32 ai AILIZJUMPENEMY else ai AILIZDODGE }
  1773.     }
  1774. ends
  1775.  
  1776. state lizshootstate
  1777.     ifcount 32 ifrnd 128 { ifpdistl 2048 ai AILIZFLEENEMY else { ifrnd 96 ai AILIZTHINK else ai AILIZGETENEMY } }
  1778.     ifactioncount 2 { ifcanshoottarget { sound CAPT_ATTACK shoot FLAMETHROWER resetactioncount } else ai AILIZTHINK }
  1779. ends
  1780.  
  1781. state checklizhit
  1782.     spawn BLOOD
  1783.     ifai AILIZSHRUNK
  1784.         { sound SQUISHED state standard_jibs state delete_enemy }
  1785.     ifdead
  1786.     {
  1787.         state drop_fuel
  1788.         addkills 1
  1789.  
  1790.         ifwasweapon RPG { sound SQUISHED state liz_body_jibs state standard_jibs state delete_enemy }
  1791.         else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state liz_body_jibs state standard_jibs state delete_enemy }
  1792.         else ifwasweapon THROWFLAME { spawn BURNING sound SQUISHED state liz_body_jibs state standard_jibs state delete_enemy }
  1793.         else { state rf ai AILIZDYING ifrnd 64 spawn BLOODPOOL }
  1794.         sound CAPT_DYING
  1795.     }
  1796.     else
  1797.     {
  1798.         sound CAPT_PAIN
  1799.         ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AILIZSHRUNK }
  1800.         else ifwasweapon THROWFLAME quote 14
  1801.         state random_wall_jibs
  1802.     }
  1803. ends
  1804.  
  1805. state lizjumpstate
  1806.     ifactioncount 6
  1807.     {
  1808.         ifpdistl 1024
  1809.             hitradius 1024 WEAKEST WEAK MEDIUMSTRENGTH TOUGH
  1810.         else ai AILIZGETENEMY else ifactioncount 2 fall
  1811.     }
  1812. ends
  1813.  
  1814. state lizdyingstate
  1815.     ifaction ALIZLYINGDEAD
  1816.     {
  1817.         strength 0
  1818.         ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy }
  1819.         ifcount RESPAWNACTORTIME ifrespawn
  1820.         {
  1821.             spawn TRANSPORTERSTAR cstat 257 strength LIZSTRENGTH ai AILIZGETENEMY
  1822.         }
  1823.     }
  1824.     else ifai AILIZDYING ifactioncount 6 { iffloordistl 8 sound THUD move LIZSTOP action ALIZLYINGDEAD }
  1825. ends
  1826.  
  1827. state lizdodgestate
  1828.     ifcount 32 ai AILIZGETENEMY
  1829. ends
  1830.  
  1831. actor LIZMANSTAYPUT LIZSTRENGTH ai AILIZGETENEMY cactor LIZMAN enda
  1832.  
  1833. actor LIZMAN LIZSTRENGTH
  1834.     state checksquished
  1835.     ifai 0 ai AILIZGETENEMY
  1836.     else ifaction ALIZLYINGDEAD { fall state lizdyingstate break }
  1837.     else ifai AILIZJUMPENEMY state lizjumpstate
  1838.     else
  1839.     {
  1840.         fall
  1841.         ifai AILIZGETENEMY state lizseekstate
  1842.         else ifai AILIZCHARGEENEMY state lizseekstate
  1843.         else ifai AILIZDODGE state lizdodgestate
  1844.         else ifai AILIZSHOOTENEMY state lizshootstate
  1845.         else ifai AILIZFLEENEMY state lizfleestate
  1846.         else ifai AILIZTHINK state lizthinkstate
  1847.         else ifai AILIZSHRUNK state lizshrunkstate
  1848.         else ifai AILIZDYING state lizdyingstate
  1849.         else ifai AILIZSPIT
  1850.             { ifcount 26 ai AILIZGETENEMY else ifcount 18 ifrnd 96 { shoot SPIT sound LIZARD_SPIT } }
  1851.     }
  1852.     ifhitweapon state checklizhit
  1853. enda
  1854.  
  1855. action SNAKEFRAMES     0   1   5   1   1
  1856. action SNAKESCREAM     5   1   5   1   1
  1857. move SNAKERUNVELS 244 256
  1858. move SNAKERUNUPVELS 244 -256
  1859. move SNAKEBACKWARDS -48 -64
  1860. move SNAKEWALK 72
  1861. move SNAKERISE 32 -16
  1862. move SNAKESTOPPED
  1863. ai AISNAKEGETE SNAKESCREAM SNAKERUNVELS seekplayer
  1864. ai AISNAKEGETUP SNAKESCREAM SNAKERUNUPVELS seekplayer
  1865. ai AISNAKEWALK SNAKEFRAMES SNAKEWALK seekplayer
  1866. ai AISNAKELOOK SNAKEFRAMES SNAKESTOPPED looking
  1867. ai AISNAKEPULLBACK SNAKEFRAMES SNAKEBACKWARDS face_player
  1868. ai AISNAKEHIT SNAKESCREAM SNAKEBACKWARDS face_player
  1869. ai AISNAKESHRUNK SNAKEFRAMES SHRUNKVELS fleeenemy
  1870.  
  1871. state checksnakehitstate
  1872.     state random_wall_jibs
  1873.     ifwasweapon SHRINKSPARK ai AISNAKESHRUNK
  1874.     else
  1875.     {
  1876.         ifdead { addkills 1 sound SNAK_DYING state standard_jibs state delete_enemy }
  1877.         else { sound SNAK_PAIN ai AISNAKEHIT }
  1878.     }
  1879. ends
  1880.  
  1881. state snakeshrunkstate
  1882.     ifcount 24 state delete_enemy
  1883.     else sizeto 1 1
  1884. ends
  1885.  
  1886. actor SNAKEDRONE SNAKESTRENGTH
  1887.     ifaction 0 ai AISNAKELOOK
  1888.     ifrnd 8 spawn WATERDRIP
  1889.  
  1890.     state checksquished
  1891.  
  1892.     ifai AISNAKELOOK
  1893.     {
  1894.         ifrnd 1 soundonce SNAK_ROAM
  1895.         ifactioncount 8 ifrnd 2
  1896.         {
  1897.             ifcansee
  1898.             {
  1899.                 ifcanshoottarget { sound SNAK_ATTACK1 ifp phigher ai AISNAKEGETUP else ai AISNAKEGETE }
  1900.                 else ai AISNAKEWALK
  1901.             }
  1902.             else ai AISNAKEWALK
  1903.         }
  1904.     }
  1905.     else ifai AISNAKEWALK
  1906.     {
  1907.         ifcansee { }
  1908.         ifrnd 32 ifnotmoving move SNAKERISE seekplayer
  1909.  
  1910.         ifcount 64
  1911.         {
  1912.             ifpdistl 4096 ifcanseetarget { ifp phigher ai AISNAKEGETUP else ai AISNAKEGETE }
  1913.             else resetcount
  1914.         }
  1915.     }
  1916.     else ifai AISNAKEGETE
  1917.     {
  1918.         ifcansee { }
  1919.         ifcount 64 ai AISNAKEPULLBACK
  1920.         ifpdistl 1024
  1921.         {
  1922.             sound SNAK_ATTACK2
  1923.             shoot SHOTSPARK1
  1924.             ai AISNAKEPULLBACK
  1925.         }
  1926.         ifnotmoving
  1927.             ifcount 16 ai AISNAKEPULLBACK
  1928.     }
  1929.     else ifai AISNAKEGETUP
  1930.     {
  1931.         ifcansee { }
  1932.         ifcount 64 ai AISNAKEPULLBACK
  1933.         ifpdistl 1024
  1934.         {
  1935.             sound SNAK_ATTACK2
  1936.             shoot SHOTSPARK1
  1937.             ai AISNAKEPULLBACK
  1938.         }
  1939.         ifnotmoving
  1940.             ifcount 16 ai AISNAKEPULLBACK
  1941.     }
  1942.     ifai AISNAKEPULLBACK { ifnotmoving ai AISNAKELOOK ifcount 32 ai AISNAKELOOK }
  1943.     else ifai AISNAKEHIT ifcount 8 ai AISNAKELOOK
  1944.     else ifai AISNAKESHRUNK state snakeshrunkstate
  1945.     ifhitweapon state checksnakehitstate
  1946. enda
  1947.  
  1948.  
  1949.  
  1950. action AJELLYWALK        0   3   5   1   15
  1951. action AJELLYSTAND       0   1   5   1   15
  1952. action AJELLYSCRATCH     0   4   5   1   15
  1953. action AJELLYHIT        30   1   1   1   10
  1954. action AJELLYSHOOT      20   1   5   1   10
  1955. action AJELLYDYING      30   8   1   1   17
  1956. action AJELLYDEAD       38   1   1   1    1
  1957.  
  1958. move JELLYWALKVELS 96 -30
  1959. move JELLYUPVELS 96 -70
  1960. move JELLYSTOPPED 0 -30
  1961. move JELLYINWATER 96 24
  1962.  
  1963. ai AIJELLYGETENEMY AJELLYWALK JELLYWALKVELS seekplayer
  1964. ai AIJELLYSHOOTENEMY AJELLYSHOOT JELLYSTOPPED face_player
  1965. ai AIJELLYSCRATCHENEMY AJELLYSCRATCH JELLYSTOPPED face_player
  1966. ai AIJELLYHIT AJELLYHIT JELLYSTOPPED face_player
  1967. ai AIJELLYSHRUNK AJELLYWALK SHRUNKVELS face_player
  1968. ai AIJELLYDYING AJELLYDYING JELLYSTOPPED face_player
  1969.  
  1970. state jellygetenemystate
  1971.  
  1972.     ifcansee
  1973.     {
  1974.         ifactioncount 32 { ifrnd 48 ifcansee ifcanshoottarget { sound OCTA_ATTACK1 ai AIJELLYSHOOTENEMY break } }
  1975.         else
  1976.         {
  1977.             ifpdistl 1024 ai AIJELLYSCRATCHENEMY
  1978.             sizeto 40 40
  1979.         }
  1980.     }
  1981.  
  1982. ends
  1983.  
  1984. state jellyscratchenemystate
  1985.     ifpdistg 1280 ai AIJELLYGETENEMY
  1986.     else ifcount 32 { resetcount sound OCTA_ATTACK2 addphealth JELLYSCRATCHINGPLAYER }
  1987. ends
  1988.  
  1989. state jellyshootenemystate
  1990.     ifcount 25 { ifcount 27 ai AIJELLYGETENEMY }
  1991.     else ifcount 24 shoot COOLEXPLOSION1
  1992.     else
  1993.     {
  1994.         ifactioncount 6 resetactioncount
  1995.         else ifactioncount 3 { shadeto -127 shadeto -127 shadeto -127 shadeto -127 }
  1996.         else { shadeto 127 shadeto 127 shadeto 127 shadeto 127 }
  1997.     }
  1998. ends
  1999.  
  2000. state checkjellyhitstate
  2001.     ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AIJELLYSHRUNK }
  2002.     else
  2003.     {
  2004.         ifdead
  2005.         {
  2006.             addkills 1
  2007.             ifwasweapon RPG { sound SQUISHED state standard_jibs state delete_enemy }
  2008.             else ifwasweapon THROWFLAME { sound SQUISHED spawn BURNING state standard_jibs state delete_enemy }
  2009.             else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy }
  2010.             else { state rf ai AIJELLYDYING }
  2011.             sound OCTA_DYING
  2012.         }
  2013.         else
  2014.         {
  2015.             ifwasweapon RPG
  2016.             {
  2017.                 sound OCTA_DYING addkills 1
  2018.                 state standard_jibs
  2019.                 killit
  2020.             }
  2021.             ifwasweapon THROWFLAME quote 14
  2022.             sound OCTA_PAIN spawn BLOOD
  2023.             ifrnd 64 ai AIJELLYHIT
  2024.  
  2025.         }
  2026.     }
  2027.     state random_wall_jibs
  2028. ends
  2029.  
  2030. state jellyshrunkstate
  2031.     ifcount SHRUNKDONECOUNT ai AILIZGETENEMY
  2032.     else ifcount SHRUNKCOUNT sizeto 48 40
  2033.     else state genericshrunkcode
  2034. ends
  2035.  
  2036. state jellydyingstate
  2037.     ifactioncount 8 { ifrnd 64 spawn BLOODPOOL move JELLYSTOPPED action AJELLYDEAD break }
  2038.     else ifactioncount 5 { } else ifactioncount 4 iffloordistl 8 sound THUD
  2039. ends
  2040.  
  2041. actor JELLYFISHSTAYPUT JELLYSTRENGTH ai AIJELLYGETENEMY cactor JELLYFISH enda
  2042.  
  2043. actor JELLYFISH JELLYSTRENGTH fall
  2044.  
  2045.     state checksquished
  2046.  
  2047.     ifai 0 ai AIJELLYGETENEMY
  2048.     else ifaction AJELLYDEAD
  2049.     {
  2050.         strength 0
  2051.         ifcount RESPAWNACTORTIME ifrespawn
  2052.             { addkills -1 spawn TRANSPORTERSTAR cstat 257 strength JELLYSTRENGTH ai AIJELLYGETENEMY }
  2053.         ifhitweapon ifwasweapon RADIUSEXPLOSION { state standard_jibs killit }
  2054.         break
  2055.     }
  2056.     else
  2057.     {
  2058.         ifrnd 1 soundonce OCTA_ROAM
  2059.  
  2060.         ifai AIJELLYGETENEMY state jellygetenemystate
  2061.         else ifai AIJELLYHIT { ifcount 8 ai AIJELLYSHOOTENEMY }
  2062.         else ifai AIJELLYDYING { state jellydyingstate break }
  2063.         else ifai AIJELLYSCRATCHENEMY state jellyscratchenemystate
  2064.         else ifai AIJELLYSHOOTENEMY state jellyshootenemystate
  2065.         else ifai AIJELLYSHRUNK state jellyshrunkstate
  2066.  
  2067.         ifmove JELLYUPVELS { } else ifp phigher move JELLYUPVELS seekplayer
  2068.         else ifmove JELLYINWATER { } else ifinwater move JELLYINWATER seekplayer
  2069.  
  2070.         ifhitweapon state checkjellyhitstate
  2071.     }
  2072. enda
  2073.  
  2074. action APIGWALK         0  4 5 1 20
  2075. action APIGRUN          0  4 5 1 11
  2076. action APIGSHOOT        30 2 5 1 58
  2077. action APIGCOCK         25 1 5 1 16
  2078. action APIGSTAND        30 1 5 1 1
  2079. action APIGDIVE         40 2 5 1 40
  2080. action APIGDIVESHOOT    45 2 5 1 58
  2081. action APIGDYING        55 5 1 1 15
  2082. action APIGHIT          55 1 1 1 10
  2083. action APIGDEAD         60 1 1 1 1
  2084.  
  2085. move PIGWALKVELS 72
  2086. move PIGRUNVELS 108
  2087. move PIGSTOPPED
  2088.  
  2089. ai AIPIGSEEKENEMY APIGWALK PIGWALKVELS seekplayer
  2090. ai AIPIGSHOOTENEMY APIGSHOOT PIGSTOPPED face_player
  2091. ai AIPIGFLEEENEMY APIGWALK PIGWALKVELS fleeenemy
  2092. ai AIPIGSHOOT APIGSHOOT PIGSTOPPED face_player
  2093. ai AIPIGDODGE APIGRUN PIGRUNVELS dodgebullet
  2094. ai AIPIGCHARGE APIGRUN PIGRUNVELS seekplayer
  2095. ai AIPIGDIVING APIGDIVE PIGSTOPPED face_player
  2096. ai AIPIGDYING APIGDYING PIGSTOPPED face_player
  2097. ai AIPIGSHRINK APIGWALK SHRUNKVELS fleeenemy
  2098. ai AIPIGHIT APIGHIT PIGSTOPPED face_player
  2099.  
  2100. state pigseekenemystate
  2101.  
  2102.     ifai AIPIGCHARGE
  2103.     {
  2104.         ifcansee ifpdistl 3084
  2105.         {
  2106.             ifnotmoving ai AIPIGSEEKENEMY
  2107.             else ai AIPIGDIVING
  2108.         }
  2109.         break
  2110.     }
  2111.     else iffloordistl 32
  2112.     {
  2113.         ifpdistg 4096 { ifactornotstayput ai AIPIGCHARGE }
  2114.         ifrnd 8 { ifbulletnear ai AIPIGDODGE }
  2115.     }
  2116.  
  2117.     ifrnd 128 ifcansee
  2118.     {
  2119.         ifai AIPIGDODGE { ifcount 32 ai AIPIGCHARGE break }
  2120.         iffloordistl 32
  2121.         {
  2122.             ifpdistl 1024 ifp palive ifcanshoottarget
  2123.                 { ai AIPIGSHOOTENEMY break }
  2124.             ifcount 48 { ifrnd 8 ifp palive ifcanshoottarget { ifrnd 192 ai AIPIGSHOOTENEMY else ai AIPIGDIVING break } }
  2125.         }
  2126.     }
  2127. ends
  2128.  
  2129. state pigshootenemystate
  2130. //    ifcansee
  2131.     {
  2132.         ifcount 12 { } else ifcount 11
  2133.         {
  2134.             ifcanshoottarget { sound PIG_ATTACK shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN }
  2135.             else ai AIPIGSEEKENEMY
  2136.         }
  2137.         ifcount 25 { } else ifcount 24 { action APIGCOCK sound SHOTGUN_COCK }
  2138.         ifcount 48 { } else ifcount 47
  2139.         {
  2140.             ifcanshoottarget { sound PIG_ATTACK shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN }
  2141.             else ai AIPIGSEEKENEMY
  2142.         }
  2143.         ifcount 60 { } else ifcount 59 { action APIGCOCK sound SHOTGUN_COCK }
  2144.         ifcount 72
  2145.         {
  2146.             ifrnd 64 resetcount
  2147.             else
  2148.             {
  2149.                 ifpdistl 768 ai AIPIGFLEEENEMY
  2150.                 else ai AIPIGSEEKENEMY
  2151.             }
  2152.         }
  2153.         ifaction APIGCOCK ifactioncount 2 action APIGSHOOT
  2154.     }
  2155.     else ai AIPIGSEEKENEMY
  2156. ends
  2157.  
  2158. state pigfleeenemystate
  2159.     ifactioncount 8 ai AIPIGSEEKENEMY
  2160.     else ifnotmoving ai AIPIGSEEKENEMY
  2161. ends
  2162.  
  2163. state pigdivestate
  2164.     ifaction APIGDIVESHOOT
  2165.     {
  2166.         ifcansee
  2167.         {
  2168.             ifcount 12 { } else ifcount 11
  2169.             {
  2170.                 ifcanshoottarget { sound PIG_ATTACK shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN }
  2171.                 else ai AIPIGSEEKENEMY
  2172.             }
  2173.             ifcount 25 { } else ifcount 24 { sound SHOTGUN_COCK }
  2174.             ifcount 48 { } else ifcount 47
  2175.             {
  2176.                 ifcanshoottarget { sound PIG_ATTACK shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN }
  2177.                 else ai AIPIGSEEKENEMY
  2178.             }
  2179.             ifcount 60 { } else ifcount 59
  2180.             {
  2181.                 sound SHOTGUN_COCK
  2182.                 ifgapzl 32 ai AIPIGDIVING
  2183.                 else
  2184.                 {
  2185.                     ifpdistl 4096 ai AIPIGFLEEENEMY
  2186.                     else ai AIPIGSEEKENEMY
  2187.                 }
  2188.             }
  2189.         }
  2190.         else ifgapzl 32 ai AIPIGDIVING else ai AIPIGSEEKENEMY
  2191.     }
  2192.     else ifactioncount 2 ifp palive { resetcount action APIGDIVESHOOT }
  2193. ends
  2194.  
  2195. state checkpighitstate
  2196.     spawn BLOOD
  2197.     state standard_jibs
  2198.     ifdead
  2199.     {
  2200.         addkills 1
  2201.         state random_wall_jibs
  2202.         ifrnd 16 spawn SHIELD else state drop_shotgun
  2203.         ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy }
  2204.         else ifwasweapon RPG { sound SQUISHED state standard_jibs state delete_enemy }
  2205.         else ifwasweapon THROWFLAME spawn BURNING
  2206.  
  2207.         ai AIPIGDYING sound PIG_DYING
  2208.     }
  2209.     else
  2210.     {
  2211.         sound PIG_PAIN
  2212.         state random_wall_jibs
  2213.         ifwasweapon SHRINKSPARK ai AIPIGSHRINK
  2214.         else ifwasweapon THROWFLAME quote 14
  2215.         else ifrnd 64 ai AIPIGHIT
  2216.         else ifrnd 64 ai AIPIGSHOOTENEMY
  2217.         else ifrnd 64 { ai AIPIGDIVING action APIGDIVESHOOT }
  2218.     }
  2219. ends
  2220.  
  2221. state pigshrinkstate
  2222.     ifcount SHRUNKDONECOUNT { ifdead { addkills 1 sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy } ai AIPIGSEEKENEMY }
  2223.     else ifcount SHRUNKCOUNT sizeto 48 40
  2224.     else state genericshrunkcode
  2225. ends
  2226.  
  2227. state pigdyingstate
  2228.     ifactioncount 5 { ifrnd 64 spawn BLOODPOOL state rf iffloordistl 8 sound THUD action APIGDEAD move PIGSTOPPED break }
  2229. ends
  2230.  
  2231.  
  2232.  
  2233. actor PIGCOPDIVE PIGCOPSTRENGTH ai AIPIGDIVING action APIGDIVESHOOT cactor PIGCOP enda
  2234. actor PIGCOPSTAYPUT PIGCOPSTRENGTH ai AIPIGSEEKENEMY cactor PIGCOP enda
  2235. actor PIGCOP PIGCOPSTRENGTH APIGSTAND fall
  2236.     state checksquished
  2237.     ifaction APIGSTAND ai AIPIGSEEKENEMY
  2238.     else ifaction APIGDEAD
  2239.     {
  2240.         ifrespawn ifcount RESPAWNACTORTIME
  2241.             { spawn TRANSPORTERSTAR cstat 257 strength PIGCOPSTRENGTH ai AIPIGSEEKENEMY }
  2242.         else { strength 0 ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy } break }
  2243.     }
  2244.     else ifai AIPIGDYING state pigdyingstate
  2245.     else ifai AIPIGHIT { ifactioncount 3 ai AIPIGSEEKENEMY }
  2246.     else ifai AIPIGSHRINK state pigshrinkstate
  2247.     else
  2248.     {
  2249.         ifai AIPIGSEEKENEMY state pigseekenemystate
  2250.         else ifai AIPIGDODGE state pigseekenemystate
  2251.         else ifai AIPIGSHOOTENEMY state pigshootenemystate
  2252.         else ifai AIPIGFLEEENEMY state pigfleeenemystate
  2253.         else ifai AIPIGDIVING state pigdivestate
  2254.         else ifai AIPIGCHARGE state pigseekenemystate
  2255.         ifhitweapon state checkpighitstate
  2256.         ifrnd 1
  2257.         {
  2258.             ifrnd 32 soundonce PIG_ROAM
  2259.             else ifrnd 64 soundonce PIG_ROAM2
  2260.             else soundonce PIG_ROAM3
  2261.         }
  2262.     }
  2263. enda
  2264.  
  2265. action ABOSSWALK                0  6  5  1  12
  2266. action ABOSSRUN                 0  6  5  1  5
  2267. action ABOSSSHOOT               30 2  5  1  4
  2268. action ABOSSLOB                 40 2  5  1  35
  2269. action ABOSS1DYING              60 5  1  1  50
  2270. action BOSS1FLINTCH             60 1  1  1  1
  2271. action ABOSS1DEAD               65
  2272.  
  2273. move BOSSWALKVELS 208
  2274. move BOSSRUNVELS 296
  2275. move BOSSSTOPPED
  2276.  
  2277. ai AIBOSSSEEKENEMY ABOSSWALK BOSSWALKVELS seekplayer
  2278. ai AIBOSSRUNENEMY ABOSSRUN BOSSRUNVELS face_player
  2279. ai AIBOSSFLEEENEMY ABOSSWALK BOSSWALKVELS fleeenemy
  2280. ai AIBOSSSHOOTENEMY ABOSSSHOOT BOSSSTOPPED face_player
  2281. ai AIBOSSLOBBED ABOSSLOB BOSSSTOPPED face_player
  2282. ai AIBOSSDYING ABOSS1DYING BOSSSTOPPED face_player
  2283.  
  2284. state bossfleeenemy
  2285.     ifcount 16 ifpdistl 1024 ifp palive ifcansee ifcanshoottarget ai AIBOSSSHOOTENEMY
  2286.     ifcount 32 ai AIBOSSSEEKENEMY
  2287. ends
  2288.  
  2289. state bossrunenemystate
  2290.     ifpdistl 2048 { ifp palive ai AIBOSSSHOOTENEMY break }
  2291.     else ifcansee { ifactioncount 6 { ifcanshoottarget { resetactioncount sound BOS1_WALK } else ai AIBOSSSEEKENEMY } }
  2292.     else ai AIBOSSSEEKENEMY
  2293. ends
  2294.  
  2295. state bossseekenemystate
  2296.     ifrnd 2 { ifactor BOSS1 soundonce BOS1_ROAM else soundonce BOS3_ROAM }
  2297.     else ifactioncount 6 { resetactioncount sound BOS1_WALK }
  2298.  
  2299.     ifpdistl 2548 ifp palive { ai AIBOSSSHOOTENEMY break }
  2300.  
  2301.     ifcansee ifcount 32
  2302.     {
  2303.         ifrnd 32 { ifp palive ifcanshoottarget ai AIBOSSSHOOTENEMY }
  2304.         else ifpdistg 2548 ifrnd 192
  2305.             ifcanshoottarget
  2306.             {
  2307.                 ifrnd 64 ai AIBOSSRUNENEMY
  2308.                 else ai AIBOSSLOBBED
  2309.             }
  2310.     }
  2311.  
  2312. ends
  2313.  
  2314. state bossdyingstate
  2315.   ifaction ABOSS1DEAD break
  2316.   ifactioncount 5 { iffloordistl 8 sound THUD action ABOSS1DEAD endoflevel 52 }
  2317. ends
  2318.  
  2319. state bosslobbedstate
  2320.     ifcansee
  2321.     {
  2322.         ifactioncount 2
  2323.         {
  2324.             resetactioncount
  2325.             ifactor BOSS1 sound BOS1_ATTACK2
  2326.             else sound BOS3_ATTACK2
  2327.             shoot MORTER
  2328.         }
  2329.         else ifcount 64 ifrnd 16 ai AIBOSSSEEKENEMY
  2330.     }
  2331.     else ai AIBOSSSEEKENEMY
  2332.  
  2333. ends
  2334.  
  2335. state bossshootenemy
  2336.     ifcount 72 ai AIBOSSSEEKENEMY
  2337.     else ifaction ABOSSSHOOT ifactioncount 2
  2338.     {
  2339.         ifactor BOSS1 sound BOS1_ATTACK1 else sound BOS3_ATTACK1
  2340.         shoot SHOTSPARK1 shoot SHOTSPARK1 shoot SHOTSPARK1 resetactioncount
  2341.     }
  2342. ends
  2343.  
  2344. state checkbosshitstate
  2345.     ifrnd 8 spawn BLOODPOOL
  2346.     ifdead { addkills 1 ifactor BOSS1 globalsound DUKE_TALKTOBOSSFALL sound BOS1_DYING else sound BOS3_DYING ai AIBOSSDYING }
  2347.     else
  2348.     {
  2349.         ifactor BOSS1 sound BOS1_PAIN else sound BOS3_PAIN
  2350.  
  2351.         debris SCRAP1 1
  2352.         guts JIBS6 1
  2353.         ifwasweapon THROWFLAME quote 14
  2354.         ifrnd 32 { action BOSS1FLINTCH move 0 }
  2355.     }
  2356. ends
  2357.  
  2358. state bosscode
  2359.     ifai 0 ai AIBOSSRUNENEMY
  2360.     else ifaction BOSS1FLINTCH { ifactioncount 3 ai AIBOSSSHOOTENEMY }
  2361.     else ifai AIBOSSSEEKENEMY state bossseekenemystate
  2362.     else ifai AIBOSSRUNENEMY state bossrunenemystate
  2363.     else ifai AIBOSSFLEEENEMY state bossfleeenemy
  2364.     else ifai AIBOSSSHOOTENEMY state bossshootenemy
  2365.     else ifai AIBOSSLOBBED state bosslobbedstate
  2366.  
  2367.     ifai AIBOSSDYING state bossdyingstate
  2368.  
  2369.     ifhitweapon state checkbosshitstate
  2370. ends
  2371.  
  2372. actor BOSS1STAYPUT BOSS1STRENGTH cactor BOSS1 enda
  2373. actor BOSS1 BOSS1STRENGTH fall state bosscode enda
  2374. actor BOSS3 BOSS3STRENGTH fall state bosscode enda
  2375.  
  2376. action AFATBREETH  0  3  5  1  40
  2377. action AFATSPIN   25  3  1  1  10
  2378. action AFATGET     0  3  5  1  30
  2379. action AFATSHOOT  15  2  5  1  50
  2380. action AFATDYING  30  8  1  1  12
  2381. action AFATDEAD   38  1  1  1  1
  2382.  
  2383. move FATGETVELS 96
  2384. move FATSTOPPED
  2385.  
  2386. ai AIFATWAIT AFATBREETH FATSTOPPED face_player
  2387. ai AIFATGET AFATGET FATGETVELS face_player
  2388. ai AIFATSHOOT AFATSHOOT FATSTOPPED face_player
  2389. ai AIFATSPIN AFATSPIN FATGETVELS face_player
  2390. ai AIFATDYING AFATDYING FATSTOPPED face_player
  2391.  
  2392. actor FATGUY FATGUYSTRENGTH
  2393.  
  2394.     fall
  2395.     state checksquished
  2396.     ifai 0 ai AIFATWAIT
  2397.     else ifai AIFATWAIT { ifcount 64 { ifrnd 92 ai AIFATGET else ai AIFATSHOOT } }
  2398.     else ifai AIFATSHOOT
  2399.     {
  2400.         ifcount 32 { ifrnd 32 ai AIFATWAIT }
  2401.         else { ifactioncount 2 { sound COMM_ATTACK shoot RPG resetactioncount } }
  2402.     }
  2403.     else ifai AIFATDYING
  2404.     {
  2405.         ifhitweapon ifwasweapon RADIUSEXPLOSION
  2406.             { sound SQUISHED state standard_jibs state delete_enemy }
  2407.         ifaction AFATDEAD break
  2408.         strength 0
  2409.         ifactioncount 8 { iffloordistl 8 sound THUD cstat 0 action AFATDEAD }
  2410.         break
  2411.     }
  2412.     else ifai AIFATGET { ifnotmoving ifrnd 32 operate ifpdistl 1596 { sound COMM_SPIN ai AIFATSPIN } }
  2413.     else ifai AIFATSPIN
  2414.     {
  2415.         soundonce COMM_SPIN
  2416.         ifcount 16 ifpdistl 1024 { addphealth CAPTSPINNINGPLAYER sound DUKE_GRUNT palfrom 32 16 resetcount }
  2417.         ifactioncount 32 ai AIFATWAIT
  2418.         ifnotmoving ifrnd 32 operate
  2419.  
  2420.     }
  2421.     ifhitweapon { ifdead { addkills 1 sound COMM_DYING ai AIFATDYING } else sound COMM_PAIN }
  2422.     ifrnd 1 soundonce COMM_ROAM
  2423. enda
  2424.  
  2425. move DUMMYWALK 144
  2426. move DUMMYSTOP
  2427. action ADUMMYDUKEWALK    0    4    5    1    20
  2428. action ADUMMYDUKESTAND -20    0    5    1    1
  2429. action ADUMMYDUKESHOOT -20    1    5    1    10
  2430. ai AIDUMMYFINDDUKE   ADUMMYDUKEWALK DUMMYWALK seekplayer
  2431. ai AIDUMMYHIDEDUKE   ADUMMYDUKEWALK DUMMYWALK seekplayer
  2432. ai AIDUMMYFLEEDUKE   ADUMMYDUKEWALK DUMMYWALK fleeplayer
  2433. ai AIDUMMYSHOOTDUKE  ADUMMYDUKESHOOT DUMMYSTOP face_player
  2434.  
  2435. state dummyshootstate
  2436.     ifactioncount 2 { resetactioncount shoot CHAINGUN }
  2437.     ifcount 48 { ifcansee { ifrnd 128 { cstat 32768 spawn TRANSPORTERSTAR ai AIDUMMYHIDEDUKE } else ai AIDUMMYFINDDUKE } else ai 0 }
  2438. ends
  2439.  
  2440. state dummyfindstate
  2441.     ifcansee ifpdistl 768 ai AIDUMMYSHOOTDUKE
  2442.     ifrnd 32 ifcount 64 ifcanseetarget ai AIDUMMYSHOOTDUKE
  2443. ends
  2444.  
  2445. state dummyfleestate
  2446.     ifcount 4 ifpdistl 1228 ifcanseetarget ai AIDUMMYSHOOTDUKE
  2447.     ifcount 32 ifcanseetarget ai AIDUMMYSHOOTDUKE else ai AIDUMMYFINDDUKE
  2448. ends
  2449.  
  2450. state dummyhidestate
  2451.     ifcount 4 ifpdistl 1228 ifcanseetarget { cstat 257 spawn TRANSPORTERBEAM ai AIDUMMYSHOOTDUKE }
  2452.     ifcount 32 ifcanseetarget { cstat 257 spawn TRANSPORTERBEAM ai AIDUMMYSHOOTDUKE }
  2453. ends
  2454.  
  2455. actor DUMMYDUKE BOSS2SMALLDUKESTRENGTH fall
  2456.     spritepal 7
  2457.     ifaction ADUMMYDUKESTAND
  2458.     {
  2459.         ifcount 64 ifcansee ai AIDUMMYFINDDUKE
  2460.         ifrnd 2 ifpdistl 2048 ifcanseetarget ai AIDUMMYSHOOTDUKE
  2461.     }
  2462.     else ifai 0 { ifmove 0 spawn TRANSPORTERBEAM action ADUMMYDUKESTAND move DUMMYSTOP looking }
  2463.     else ifai AIDUMMYFINDDUKE state dummyfindstate
  2464.     else ifai AIDUMMYHIDEDUKE state dummyhidestate
  2465.     else ifai AIDUMMYFLEEDUKE state dummyfleestate
  2466.     else ifai AIDUMMYSHOOTDUKE state dummyshootstate
  2467.     ifhitweapon { ifdead { addkills 1 sound SQUISHED state standard_jibs state delete_enemy break } else cstat 257 }
  2468. enda
  2469.  
  2470. move BIGWALK 64
  2471. move BIGSTOP
  2472. action ABIGDUKEWALK   -5    4    5    1    40
  2473. action ABIGDUKESTAND -25    0    5
  2474. action ABIGDUKESHOOT -25    1    5
  2475. ai AIBIGFINDDUKE   ABIGDUKEWALK BIGWALK seekplayer
  2476. ai AIBIGFLEEDUKE   ABIGDUKEWALK BIGWALK fleeplayer
  2477. ai AIBIGSHOOTDUKE  ABIGDUKESHOOT BIGSTOP face_player
  2478.  
  2479. state bigshootstate
  2480.     ifactioncount 2 { resetactioncount shoot CHAINGUN }
  2481.     ifcount 48 { ifcansee ai AIBIGFINDDUKE else ai 0 }
  2482. ends
  2483.  
  2484. state bigfindstate
  2485.     ifcansee ifpdistl 768 ai AIBIGSHOOTDUKE
  2486.     ifrnd 32 ifcount 64 ifcanseetarget ai AIBIGSHOOTDUKE
  2487. ends
  2488.  
  2489. state bigfleestate
  2490.     ifcount 4 ifpdistl 1228 ifcanseetarget ai AIBIGSHOOTDUKE
  2491.     ifcount 32 ifcanseetarget ai AIBIGSHOOTDUKE else ai AIBIGFINDDUKE
  2492. ends
  2493.  
  2494. actor BIGDUMMYDUKE BOSS2LARGEDUKESTRENGTH fall
  2495.     sizeto 96 96
  2496.     spritepal 7
  2497.     ifaction ABIGDUKESTAND
  2498.     {
  2499.         ifcount 64 ifcansee ai AIBIGFINDDUKE
  2500.         ifrnd 2 ifpdistl 2048 ifcanshoottarget ai AIBIGSHOOTDUKE
  2501.     }
  2502.     else ifai 0 { ifmove 0 spawn TRANSPORTERBEAM action ABIGDUKESTAND move BIGSTOP looking }
  2503.     else ifai AIBIGFINDDUKE state bigfindstate
  2504.     else ifai AIBIGFLEEDUKE state bigfleestate
  2505.     else ifai AIBIGSHOOTDUKE state bigshootstate
  2506.     ifhitweapon { sound SQUISHED state standard_jibs state delete_enemy break }
  2507. enda
  2508.